如何拒绝CORS飞行前请求?



关于如何'修复' 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

最新更新