Cookie未在POST请求时随JavaScript一起发送

Cookie未在POST请求时随JavaScript一起发送,javascript,jquery,cookies,session-cookies,setcookie,Javascript,Jquery,Cookies,Session Cookies,Setcookie,我想在访问我的网站上的端点/access时使用浏览器存储的安全cookie。cookie在登录过程中保存,我确保我的网站在我后端的子域上运行(为客户端创建cookie) 我的后端运行在www.weloveconding.com上,我的web应用程序托管在webapp.weloveconding.com上 我从后端收到的cookie如下所示: 设置Cookie:user_id=rlxxwncgayvbmnogfie1ngfcpbrka48yafogyrpwwuvu3ezca==; Path=/ac

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

我的后端运行在
www.weloveconding.com
上,我的web应用程序托管在
webapp.weloveconding.com

我从后端收到的cookie如下所示:

设置Cookie:user_id=rlxxwncgayvbmnogfie1ngfcpbrka48yafogyrpwwuvu3ezca==; Path=/access;Expires=周二,2015年9月29日17:37:11 GMT; 域名=.weloveconding.com;HttpOnly;稳妥

我现在要做的是在
www.weloveconding.com/access
上发布请求,并使用我的cookie作为身份验证凭据。使用jQuery执行AJAX请求时,我正在发送带有凭据的

$.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有
HttpOnly
Secure
集?

是的,这是因为cookie有
Secure
集-并且您正在发布到
http

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

是的,这是因为cookie设置了
Secure
集,并且您正在发布到
http

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

您确定您的cookie没有被拒绝吗?根据这一点,它应该被拒绝。你确定你的cookie没有被拒绝吗?根据这一点,它应该被拒绝。你是对的!我忘了提到,我还测试了从HTTPS到HTTPS。但它没有起作用。我还遗漏了什么吗?尝试删除
xhrFields:{withCredentials:true}
,因为它用于跨域请求。因此,如果您“正在”跨域进行操作,则需要设置适当的飞行前cors标头。好的,我接受了您的回答,因为我的描述指出了缺少HTTPS的事实。顺便问一下,我是否必须用JavaScript存储cookie,或者当收到它作为“Set cookie”参数时,浏览器会自动将其保存?它会自动为您创建cookie-而且由于HttpOnly也会被传递-
,如果HttpOnly标志(可选)包含在HTTP响应头中,无法通过客户端脚本访问cookie(如果浏览器支持此标志,同样如此)。
没错!我忘了提到,我还测试了从HTTPS到HTTPS。但它没有起作用。我还遗漏了什么吗?尝试删除
xhrFields:{withCredentials:true}
,因为它用于跨域请求。因此,如果您“正在”跨域进行操作,则需要设置适当的飞行前cors标头。好的,我接受了您的回答,因为我的描述指出了缺少HTTPS的事实。顺便问一下,我是否必须用JavaScript存储cookie,或者当收到它作为“Set cookie”参数时,浏览器会自动将其保存?它会自动为您创建cookie-而且由于HttpOnly也会被传递-
,如果HttpOnly标志(可选)包含在HTTP响应头中,无法通过客户端脚本访问cookie(如果浏览器支持此标志,则再次访问)。