Chrome无法在请求标头中向服务器发送域级Cookie

时间:2017-08-21 18:45:29

标签: google-chrome cookies

这真的很烦人,部分原因是因为它内部的铬和它或多或少的猜测名称。但是我的请求标头没有传递同一域的cookie。

我有一个域名设置为

的cookie
  

.domain.net

我的申请表位于以下网址

  

MyApp的。的 foo.bar.domain.net

我试图将请求发送到

的同一根域中的另一台服务器
  

otherapp。的 bar.domain.net

Cookie不会在Chrome中发送,但会在Safari中发送。

根据HTTP cookie规范,它应该发送因为" .domain.net"是 .bar.domain.net .foo.bar.domain.net

的主域

此外,我知道域级cookie正在运行,因为当我向 myapp.foo.bar.domain.net myapp.bar.domain.net <发出GET请求时/ strong>,cookie确实在标题中传递。当原点是另一个域时我向任一域发出请求时,似乎失败了。

有人知道这是否是Chrome中的已知错误,我正在运行第59版。

1 个答案:

答案 0 :(得分:1)

原来我没有添加

xhrFields: {
            withCredentials: true
        },

在ajax请求中。这有点令人困惑,因为在我更改域之前这一切都正常工作,更令人困惑的是,这适用于Safari而无需设置withCredentials标头。这里的内容是,如果主机名不同,即使设置了根域cookie,Chrome也不会发送cookie,除非传递了withCredentials标头参数,但Safari无论如何都会发送。我不了解Firefox。