上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: dahua1 - 

GM_xmlhttpRequest 怎么发formData数据包

[复制链接]

该用户从未签到

5

主题

19

回帖

47

积分

助理工程师

积分
47
发表于 2022-4-7 12:58:43 | 显示全部楼层 | 阅读模式
悬赏1油猫币已解决
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[key])
    }
    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处直接填这个
  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    290

    主题

    3875

    回帖

    3794

    积分

    管理员

    积分
    3794

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-4-7 12:58:44 | 显示全部楼层
    new FormData()

    即可

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


    data处直接填这个
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    5 天前
  • 签到天数: 119 天

    [LV.6]常住居民II

    29

    主题

    598

    回帖

    535

    积分

    专家

    积分
    535

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-4-7 13:24:13 | 显示全部楼层
    这种分隔符似乎在抓包软件经常看到,实际数据包不需要发送这个吧,具体还得大神来解释
    入驻爱发电 让这世界充满爱 https://afdian.net/a/vpannice
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    632

    主题

    5170

    回帖

    6048

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6048

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2022-4-7 14:38:48 | 显示全部楼层
    同理的,印象里使用FormData()对象设置到data属性上即可
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    19

    回帖

    47

    积分

    助理工程师

    积分
    47
    发表于 2022-4-7 15:47:43 | 显示全部楼层
    本帖最后由 dahua1 于 2022-4-7 16:58 编辑


    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, 数据[key])
    }

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


    这样可以了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    290

    主题

    3875

    回帖

    3794

    积分

    管理员

    积分
    3794

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-4-7 15:51:49 | 显示全部楼层
    dahua1 发表于 2022-4-7 15:47
    var 链接="http://www.chuanxincao.net/XiaoShuoAPI/EditorBook/"
    var 数据 ={
        "id": "0",

    等哥哥的脚本哦
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    19

    回帖

    47

    积分

    助理工程师

    积分
    47
    发表于 2022-4-7 15:53:14 | 显示全部楼层
    李恒道 发表于 2022-4-7 14:38
    同理的,印象里使用FormData()对象设置到data属性上即可

    嗯嗯 可以了
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表