dahua1 发表于 2022-4-7 12:58:43

GM_xmlhttpRequest 怎么发formData数据包

var 链接="http://www.chuanxincao.net/XiaoShuoAPI/EditorBook/"
var 数据 ={
    "id": "0",
    "bookName": "hot",
    "imgUrl": "default_poster.jpg",
    "bookBrief": "",
    "bookType": "1",
    "isEnd": "0"
}

function post3(url,jsondata){
    var xhr = new XMLHttpRequest();
    xhr.open('post', url, true);
    var formData = new FormData();
    xhr.setRequestHeader('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8');
    for (var key in jsondata) {
      formData.append(key, jsondata)
    }
    xhr.send(formData);
    xhr.onload = function () {
      if(xhr.readyState==4&&xhr.status==200){
            console.log(xhr.responseText);
      }
    }
}

post3(链接,数据)


post发送formData数据,是像这样的,有"-----------------------------" 这样的分隔符

-----------------------------2348998176134986568069107297
Content-Disposition: form-data; name="id"

0
-----------------------------2348998176134986568069107297
Content-Disposition: form-data; name="bookName"

hot
-----------------------------2348998176134986568069107297




用GM_xmlhttpRequest 怎么能发出有分隔符的数据包呢,下面这个发出去不一样
      GM_xmlhttpRequest({
            method: "post",
            url: 链接,
            data: JSON.stringify(数据),
            headers: {'Content-Type': 'multipart/form-data'},
            onload: function(response) {
                console.log(response.responseText)
            }
      })

王一之 发表于 2022-4-7 12:58:44

new FormData()

即可

https://developer.mozilla.org/zh ... ng_FormData_Objects


data处直接填这个

脚本体验师001 发表于 2022-4-7 13:24:13

这种分隔符似乎在抓包软件经常看到,实际数据包不需要发送这个吧,具体还得大神来解释

李恒道 发表于 2022-4-7 14:38:48

同理的,印象里使用FormData()对象设置到data属性上即可

dahua1 发表于 2022-4-7 15:47:43

本帖最后由 dahua1 于 2022-4-7 16:58 编辑

王一之 发表于 2022-4-7 14:37
new FormData()

即可


var 链接="http://www.chuanxincao.net/XiaoShuoAPI/EditorBook/"
var 数据 ={
    "id": "0",
    "bookName": "hot",
    "imgUrl": "default_poster.jpg",
    "bookBrief": "",
    "bookType": "1",
    "isEnd": "0"
}

var formData = new FormData();
for (var key in 数据) {
    formData.append(key, 数据)
}

GM_xmlhttpRequest({
    method: "post",
    url: 链接,
    data: formData,
    onload: function(response) {
      console.log(response.responseText)
    }
})


这样可以了{:4_93:}

王一之 发表于 2022-4-7 15:51:49

dahua1 发表于 2022-4-7 15:47
var 链接="http://www.chuanxincao.net/XiaoShuoAPI/EditorBook/"
var 数据 ={
    "id": "0",


等哥哥的脚本哦

dahua1 发表于 2022-4-7 15:53:14

李恒道 发表于 2022-4-7 14:38
同理的,印象里使用FormData()对象设置到data属性上即可

嗯嗯 可以了
页: [1]
查看完整版本: GM_xmlhttpRequest 怎么发formData数据包