Major 发表于 2021-12-25 20:52:58

GM_xmlhttpRequest报400错误 POST请求

本帖最后由 Major 于 2021-12-25 20:55 编辑

GM_xmlhttpRequest报400错误 POST请求 ,有知道什么原因吗, 浏览器抓包的 header 截图如下

///////////////////////////////////////////////
GM_xmlhttpRequest({
    method: "post",
    url: 'https://yzzs.kdy100.com:1991/mossapi/mossp.expressj/queryExpressListV4',

    Headers:{
      "Content-Type": "application/json;charset=UTF-8"
    },

    data:{
      "callee": "",
      "companyId": "",
      "currentPage": 1,
      "endTime": "2021-12-26 00:00:00",
      "mailNum": "",
      "notifyStatus": "",
      "packNum": "",
      "packStatus": "0",
      "pageSize": 20,
      "queryModel": "QueryInTime",
      "sortBy": 0,
      "sortOrder": "desc",
      "startTime": "2021-11-26 00:00:00",
      "stockDay": "",
      "userId": "P07286628cf-0e10-4441-9867-ba9cbcf54bc9",
    },

    onload: function(res){
      if(res.status === 200){
            console.log('成功')
            var obj = res.data;
            console.log(obj)
      }else{
            console.log('失败')
            console.log(res)
      }
    },
    onerror : function(err){
      console.log('error')
      console.log(err)
    }
});



Ne-21 发表于 2021-12-25 21:06:16

原请求有jwt验证吧

李恒道 发表于 2021-12-25 21:45:55

这种情况最好对着提交的数据和抓包的数据,看看有什么不一致的地方

王一之 发表于 2021-12-26 18:13:39

原请求不是有个 Authorication 先解决这个吧

Major 发表于 2021-12-28 17:24:23

王一之 发表于 2021-12-26 18:13
原请求不是有个 Authorication 先解决这个吧

我把所有的 headers都加上,结果还是400错误。奇怪的是用 Python 可以拿到数据

王一之 发表于 2021-12-28 17:29:45

Major 发表于 2021-12-28 17:24
我把所有的 headers都加上,结果还是400错误。奇怪的是用 Python 可以拿到数据 ...

哥哥调试一下试试?
在扩展的页面可以看到这个请求实际的发送信息

[油猴脚本开发指南]基础的脚本调试(二)
https://bbs.tampermonkey.net.cn/thread-1386-1-1.html
(出处: 油猴中文网)

Major 发表于 2021-12-28 19:58:25

本帖最后由 Major 于 2021-12-28 19:59 编辑

王一之 发表于 2021-12-28 17:29
哥哥调试一下试试?
在扩展的页面可以看到这个请求实际的发送信息


脚本猫的抓包结果显示 ,data的值没有传过去,设置的 header 和 实际发送的请求header 也不一样

王一之 发表于 2021-12-28 20:08:47

Major 发表于 2021-12-28 19:58
脚本猫的抓包结果显示 ,data的值没有传过去,设置的 header 和 实际发送的请求header 也不一样
...
注意到了,首先GM_xhr的data只能发送文本或者FormData类型的数据

需要手动拼接成 aa=xx&bb=xx的格式 或者自己手动序列化json JSON.stringify({aa:1,bb:2})

然后 header 是需要自己填写的,脚本猫并不会自动填充上去
另外,header是大小写敏感 ,看发出来的代码是Headers

Major 发表于 2021-12-29 09:53:08

王一之 发表于 2021-12-28 20:08
注意到了,首先GM_xhr的data只能发送文本或者FormData类型的数据

需要手动拼接成 aa=xx&bb=xx的格式 或者 ...

按照你说的,data转化后成功了,感谢!感谢!
页: [1]
查看完整版本: GM_xmlhttpRequest报400错误 POST请求