(注意:另见相关问题Can browsers react to Set-Cookie specified in headers in an XSS jquery.getJSON() request?)
我似乎无法在 JSON 操作的请求标头中设置 cookie(其名称为mwLastWriteTime)。请求本身是 Freebase MQL 教程中的一个简单请求,否则它工作正常:
// Invoke mqlread and call the function below when it is done.
// Adding callback=? to the URL makes jQuery do JSONP instead of XHR.
jQuery.getJSON("http://api.sandbox-freebase.com/api/service/mqlread?callback=?",
{query: JSON.stringify(envelope)}, // URL parameters
displayResults); // Callback function
我希望我可以用以下方式设置这个 cookie:
$.cookie('mwLastWriteTime', value, {domain: ".sandbox-freebase.com"});
不幸的是,在 FireBug 中查看传出请求标头时,我只看到:
Host api.sandbox-freebase.com
User-Agent [...]
Accept */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Referer [...]
但是,如果我不指定域(或者如果我明确指定请求站点的域),我可以mwLastWriteTime
显示在本地请求的标头中。由于.sandbox-freebase.com
域拥有这些 cookie,它们不应该与 GET 一起旅行吗?还是需要某种解决方法?
我的代码都是 JavaScript,我想设置这个 cookie,然后立即调用 getJSON。