关于如何'修复' CORS错误有很多问题,但关于如何正确拒绝作为服务器端开发人员我想拒绝并导致失败的CORS请求的问题并不多。
拒绝CORS的正确方法是什么?
正如试图修复CORS的许多问题所建议的那样,在很大程度上,您可以响应任何不正确匹配的内容,例如Access-Control-Allow-Origin
不匹配请求Origin
或其他任何内容。
但是考虑到CORS匹配或不匹配的方式多种多样,最好的方法是不提供CORS头。
从what中引用
如果服务器不希望参与CORS协议,其对CORS或CORS-preflight请求的HTTP响应必须不包含上述任何标头。建议服务器在此类HTTP响应中使用403状态。
值得注意的是,文档没有提到必需的2XX
状态码,所以不要依赖例如403
来拒绝CORS。
[1] https://fetch.spec.whatwg.org/http-cors-protocol
[2] https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS