我有一个使用服务器端API的客户端应用程序。客户端和服务器端应用程序放置在不同的域上。会话ID放在服务器端的cookie中。因此,客户端应用程序应在每个AJAX请求中发送cookie。我在Xhr对象中使用withCredentials
选项来发送每个AJAX请求的头文件。问题是预检OPTIONS请求中没有标题。但我需要这个cookie,因为服务器端应该发送这个请求,因为每个用户都有自己的路由。
答案 0 :(得分:3)
实际上,浏览器永远不会在OPTIONS
请求上发送凭据。存在这些请求以允许浏览器检索Access-Control-*
响应标头。
请查看CORS Article on MDN,讨论响应中withCredentials
和XMLHttpRequest
上Access-Control-Allow-Credentials
的使用情况。浏览器拒绝任何不包含Access-Control-Allow-Credentials: true
标头的响应,不使响应可用于调用的网络内容。
另外,请考虑使用Token-Auth而不是Cookie。 Good read here