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)
}
}) new FormData()
即可
https://developer.mozilla.org/zh ... ng_FormData_Objects
data处直接填这个
这种分隔符似乎在抓包软件经常看到,实际数据包不需要发送这个吧,具体还得大神来解释 同理的,印象里使用FormData()对象设置到data属性上即可 本帖最后由 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:} dahua1 发表于 2022-4-7 15:47
var 链接="http://www.chuanxincao.net/XiaoShuoAPI/EditorBook/"
var 数据 ={
"id": "0",
等哥哥的脚本哦 李恒道 发表于 2022-4-7 14:38
同理的,印象里使用FormData()对象设置到data属性上即可
嗯嗯 可以了
页:
[1]