小编典典

跨域POST请求未发送cookie Ajax Jquery

ajax

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


阅读 378

收藏
2020-07-26

共1个答案

小编典典

您无法通过JavaScript在CORS请求上设置或读取Cookie。尽管CORS允许跨域请求,但cookie仍然受浏览器的同源策略约束,这意味着只有来自相同来源的页面才能读取/写入cookie。withCredentials仅表示将远程主机设置的任何cookie发送到该远程主机。您将必须使用Set- Cookie标头从远程服务器设置cookie 。

2020-07-26