似乎已经在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 。
withCredentials
Set- Cookie