2012-02-01 38 views
0

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

我的问题是服务器需要身份验证的实际请求,但也为OPTIONS请求。但浏览器不会发送带有OPTIONS请求的验证头。

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

任何想法?提前致谢。

回答

2

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

+0

好的,谢谢。我也在实际请求期间进行验证。但是,我必须关闭OPTIONS的验证。 – Ixx 2012-02-02 17:43:33

1

实际上,如果withCredentials = true,Chrome将发送带有预检请求的cookie,而Firefox不会。听起来他们已经实施了不同的规格。