不带Cookie的XMLHttpRequest
如何从不使用Cookie的Java脚本发送请求?我想从greasemonkey开始,所以我不关心同源,可以使用原始
xmlhttprequest
或greamonkey的GM_xmlhttpRequest。
我需要从同一网站获取一个页面,但未授权。浏览器(Firefox)始终发送FF拥有的该域的所有Cookie。
背景:我正在处理一个GM脚本,它显示全尺寸版本的个人资料图像。然而,知道其URL的唯一方法,我必须为该用户获取个人资料页面。这必须是未经授权的,否则这些用户将被通知我正在查看他们的个人资料。现在为了进行开发,我在服务器上使用php来获取个人资料页面,但这不能通过其他用户的GM脚本分发进行扩展。
解决方案
您可以在请求选项上设置mozAnon或anonymous标志以禁止发送/存储Cookie。
遗憾的是,这些标志aren't documented还在wiki中,但它们似乎是available since Version 3.8Beta3(2016年4月18日)。
GM_xmlhttpRequest({
method: 'GET',
url: url,
anonymous: true, // remove original cookies
headers: {
cookie: 'whatever' // add custom cookies if necessary
},
onload: function(res) {
// optionally parse the reponse cookies which are otherwise lost
const cookieRegex = /^Set-Cookie: (.*)$/gm;
const cookies = [];
while (cookieRegex.exec(res.responseHeaders)) {
cookies.push(RegExp.$1);
}
console.log(cookies);
}
});
相关文章