与其他标题不同,I can't set the Cookie header使用XMLHttpRequest.prototype.setRequestHeader
。
相反,必须通过document.cookie
操纵Cookie。
不幸的是,这看起来很不一致。
document.cookie = 'name=foo';
var xhr = new XMLHttpRequest;
xhr.open('GET', url1);
xhr.send();
document.cookie = 'name=bar';
var xhr = new XMLHttpRequest;
xhr.open('GET', url2);
xhr.send();
在Chrome 47和IE 10中,这两个请求都有name=bar
。在Firefox 43中,第一个请求为name=foo
,第二个请求为name=bar
。
以下哪些行为符合HTML5标准?如何控制请求的Cookie标头?
(因为我知道我会被问到这个问题:AWS Cloudfront不会查看除Cookie以外的任何标题,以便提供私人内容。并且数百种组合资源不适合投放政策Cookie ,所以我必须为每个请求设置一个不同的策略cookie。这是一个令人遗憾的API,但这就是原因。)