不带Cookie的XMLHttpRequest

2022-06-10 00:00:00 cookies javascript greasemonkey
如何从不使用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);
   }
});

相关文章