在预检请求中发送凭据(CORS)

3

我需要使用JSON格式进行CORS。这会使浏览器首先发送一个OPTIONS请求,指定来源等信息。然后服务器应该回答允许的域、方法等。如果一切顺利,浏览器将发送实际请求。

我的问题是,服务器需要对实际请求和OPTIONS请求进行身份验证。但是浏览器不会在OPTIONS请求中发送身份验证标头。

我正在使用JQuery和ajax()函数。我尝试添加“withCredentials:true”,并添加Authorization标头,但这不会影响OPTIONS请求,它仍然不会发送任何凭据。

有什么想法吗?提前谢谢。

2个回答

2

预检请求仅用于验证CORS请求本身是否允许。因此,cookie永远不会包含在预检请求中。您必须在实际请求期间验证用户。


好的,谢谢。我也在实际请求期间进行验证。但是我必须关闭OPTIONS的验证。 - User
在双向 SSL 配置中,这难道不会带来安全风险吗? - heez

1

实际上,如果withCredentials=true,Chrome会随着预检请求发送cookies,而Firefox则不会。听起来他们已经以不同的方式实现了规范。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接