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

GM_xmlhttpRequest 怎么发formData数据包

[复制链接]

该用户从未签到

5

主题

24

帖子

47

积分

助理工程师

Rank: 1

积分
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的每日心情
    慵懒
    昨天 02:52
  • 签到天数: 69 天

    [LV.6]常住居民II

    153

    主题

    2029

    帖子

    2157

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    2157

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章管理员家财万贯

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

    即可

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


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

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-6-12 21:47
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    11

    主题

    256

    帖子

    203

    积分

    高级工程师

    Rank: 6Rank: 6

    积分
    203

    中秋纪念章猫咪币纪念章活跃会员热心会员三好学生

    发表于 2022-4-7 13:24:13 | 显示全部楼层
    这种分隔符似乎在抓包软件经常看到,实际数据包不需要发送这个吧,具体还得大神来解释
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 57 天

    [LV.5]常住居民I

    354

    主题

    3128

    帖子

    3129

    积分

    管理员

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

    Rank: 10Rank: 10Rank: 10

    积分
    3129

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 2022-4-7 14:38:48 | 显示全部楼层
    同理的,印象里使用FormData()对象设置到data属性上即可
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    24

    帖子

    47

    积分

    助理工程师

    Rank: 1

    积分
    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的每日心情
    慵懒
    昨天 02:52
  • 签到天数: 69 天

    [LV.6]常住居民II

    153

    主题

    2029

    帖子

    2157

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    2157

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章管理员家财万贯

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

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

    使用道具 举报

    该用户从未签到

    5

    主题

    24

    帖子

    47

    积分

    助理工程师

    Rank: 1

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

    嗯嗯 可以了
    回复

    使用道具 举报

    发表回复

    本版积分规则

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