这真的很烦人,部分原因是因为它内部的铬和它或多或少的猜测名称。但是我的请求标头没有传递同一域的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版。
答案 0 :(得分:1)
原来我没有添加
xhrFields: {
withCredentials: true
},
在ajax请求中。这有点令人困惑,因为在我更改域之前这一切都正常工作,更令人困惑的是,这适用于Safari而无需设置withCredentials
标头。这里的内容是,如果主机名不同,即使设置了根域cookie,Chrome也不会发送cookie,除非传递了withCredentials
标头参数,但Safari无论如何都会发送。我不了解Firefox。