在POST请求中不使用JavaScript发送Cookie

时间:2014-09-29 11:58:19

标签: javascript jquery cookies session-cookies setcookie

我想使用安全cookie,当访问我网站上的端点/access时,浏览器会存储该cookie。在登录过程中保存了cookie,我确保我的网站在我的后端的子域上运行(为客户端创建cookie)。

我的后端正在www.welovecoding.com上运行,我的网络应用程序托管在webapp.welovecoding.com上。

我从后端收到的cookie看起来像这样:

  

设置Cookie:USER_ID = RLXXWNCGAyVBmnogfiE1ngFCpBRKA48YaFOGyrPypwvU3eZCA ==;   路径= /接入;到期=星期二,29-Sep-2015 17:37:11 GMT;   域= .welovecoding.com;仅Http;安全

我现在要做的是www.welovecoding.com/access上的POST请求,我的cookie作为身份验证凭据。我在使用jQuery执行我的AJAX请求时发送withCredentials

$.ajax({
  crossDomain: true,
  type: 'POST',
  url: "http://www.welovecoding.com/access",
  xhrFields: {
    withCredentials: true
  }
}).done(function (data, textStatus, jqXHR) {
  console.log("Response", data);
});

但我仍然得到一个HTTP错误403,表示缺少cookie。有谁知道为什么?也许是因为Cookie设置了HttpOnlySecure

1 个答案:

答案 0 :(得分:4)

是的,这是因为Cookie已设置Secure - 而且您要发布到http

;secure (cookie to only be transmitted over secure protocol as https)

https://developer.mozilla.org/en-US/docs/Web/API/document.cookie