跨域POST请求未发送cookie Ajax Jquery
似乎已经在stackoverflow上讨论过类似的内容,但是我找不到完全一样的东西。
我正在尝试发送带有CORS(跨源资源共享)的Cookie,但无法正常工作。
这是我的代码。
$.ajax( {
type: "POST",
url: "http://example.com/api/getlist.json",
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
},
success: function(){
alert('success');
},
error: function (xhr) {
alert(xhr.responseText);
}
}
);
我在请求HEADER中看不到此Cookie。
回答:
您无法通过JavaScript在CORS请求上设置或读取Cookie。尽管CORS允许跨域请求,但cookie仍然受浏览器的同源策略约束,这意味着只有来自相同来源的页面才能读取/写入cookie。withCredentials
仅表示将远程主机设置的任何cookie发送到该远程主机。您将必须使用Set-
Cookie标头从远程服务器设置cookie 。
以上是 跨域POST请求未发送cookie Ajax Jquery 的全部内容, 来源链接: utcz.com/qa/399372.html