Major 发表于 2023-2-19 14:07:41

GM_xmlhttpRequest获取的cookie 和 document.cookie 不一致

本帖最后由 Major 于 2023-2-19 14:11 编辑

在使用GM\_xmlhttpRequest发送请求时,发现请求头中会自动携带一个GM\_xmlhttpRequest获取的cookie,

这个cookie 和 document.cookie 获取到的值不一样。导致请求网站验证失败。

然后尝试了手动在请求头中加入 'Cookie':document.cookie, 但是请求抓包发现,实际发送出去的cookie 是 GM\_xmlhttpRequest自己的cookie 和 document.cookie 拼接的结果。然后仍然导致请求失败

有没有知道这个问题怎么解决的方式或者方法

```javascript
GM_xmlhttpRequest({
    method: "POST",
    url: 'https://kdcs-api/list',
    // cookie:window.document.cookie,
    headers: {
      // 'Content-Length': 247,
      'Cookie':document.cookie,
      'Accept': 'application/json, text/plain, */*',
      'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
      'Content-Type': 'application/json;charset=UTF-8',
      'token': getCookie('access_token')
    },
    data:JSON.stringify({
      'pageSize': 500,
      'pageIndex': 1,
      'noticeType': '0',
      'notifyStatus': '4',
      'sort': 'desc',
      'cooperationName': ''
    }),
    onload: function(mesage){
      if(mesage.status === 200){
            try {
                let getmes = JSON.parse(mesage.responseText);
            } catch (error) {
                console.log("send-result:",mesage.responseText);
            };
      }else{
            console.log('send success erro,start_code:'+String(mesage.status))
      };
    },
    onerror : function(err){
      console.log('send success erro:',err)
    }
});
```

tfsn20 发表于 2023-2-19 14:07:42

Major 发表于 2023-2-19 15:58
加在哪个位置,我加的对吗,加了之后抓包发现还有

位置是对的,改成anonymous:true就行了,意思是无名为真

steven026 发表于 2023-2-19 15:03:32

可以加一个方法`anonymous:false,`强制不发送默认自动带的cookie,然后自己手动选需要的cookie

Major 发表于 2023-2-19 15:58:04

steven026 发表于 2023-2-19 15:03
可以加一个方法`anonymous:false,`强制不发送默认自动带的cookie,然后自己手动选需要的cookie ...

加在哪个位置,我加的对吗,加了之后抓包发现还有

    ruku_request2_tuxi:function (headers,data){
      return new Promise(function(resolve){
            GM_xmlhttpRequest({
                method: "POST",
                anonymous:false,
                url: 'https://kdcs-api.tuxi.com/public/enterSingle',
                headers: headers,
                data:JSON.stringify(data),
                onload: function(mesage){
                  if(mesage.status === 200){
                        try {
                            let data = JSON.parse(mesage.responseText);
                            resolve(data);
                        } catch (error) {
                            console.log("send-result:",mesage.responseText);
                        };
                  }else{
                        console.log('send success but meting erro,start_code:'+String(mesage.status))
                  };
                },
                onerror : function(err){
                  console.log('send success erro:',err)
                }
            });
      });
    },

steven026 发表于 2023-2-19 18:36:39

Major 发表于 2023-2-19 15:58
加在哪个位置,我加的对吗,加了之后抓包发现还有

说错了是anonymous:true
=-=
页: [1]
查看完整版本: GM_xmlhttpRequest获取的cookie 和 document.cookie 不一致