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

时间:2012-02-01 20:44:56

标签: ajax authentication http-headers request cors

我必须使用内容类型JSON制作CORS。这使浏览器首先发送OPTIONS请求,指定原点等。然后服务器应该回答允许的域,方法等。如果这很顺利,浏览器会发送实际的请求。

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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