我必须使用内容类型JSON制作CORS。这使浏览器首先发送OPTIONS请求,指定原点等。然后服务器应该回答允许的域,方法等。如果这很顺利,浏览器会发送实际的请求。
我的问题是服务器需要对实际请求进行身份验证,但也需要OPTIONS请求。但浏览器不会使用OPTIONS请求发送身份验证标头。
我正在使用JQuery和ajax()函数。我尝试添加“withCredentials:true”,并添加Authorization标头,但这不会影响OPTIONS请求,它仍然不会发送任何凭据。
有什么想法吗?提前谢谢。
答案 0 :(得分:2)
预检请求仅用于验证是否允许CORS请求本身。因此,cookie不会包含在预检请求中。您必须在实际请求期间验证用户。
答案 1 :(得分:1)
实际上,如果withCredentials = true,Chrome会发送带有预检请求的Cookie,而Firefox则不会。听起来他们已经以不同的方式实施了规范。