You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Async/Await Fetch以text/html类型POST独立参数而非对象?

解决方案

要实现发送不带外层大括号的独立键值对文本,你需要手动格式化数据内容,而非使用JSON.stringify()(它会自动给对象添加外层大括号)。具体修改如下:

$(document).on('click', '#update', async () => {
    try {
        // 构造数据对象
        const postData = {
            "country": getCookie("country"),
            "city": getCookie("city").replace(/"/g, ""),
            "action": 1,
            "csrfmiddlewaretoken": $('input[name=csrfmiddlewaretoken]').val()
        };

        // 手动格式化为不带外层大括号的键值对文本
        const bodyContent = Object.entries(postData)
            .map(([key, value]) => `"${key}": "${value}"`)
            .join(',\n    ');

        const response = await fetch("/getupdate",{
            method:'POST',
            headers:{
                'Content-Type':'text/html; charset=utf-8'
            },
            body: bodyContent // 使用格式化后的文本作为请求体
        });
    } catch (error){
        console.log(error)
    }
});

说明

  • Object.entries(postData)将对象转换为[键, 值]的数组形式,比如[["country", "US"], ["city", "Miami"], ...]
  • map方法把每个键值对格式化为"key": "value"的字符串
  • join(',\n ')用逗号加换行缩进拼接所有字符串,最终生成你期望的格式
  • 保持Content-Type: text/html; charset=utf-8不变,确保后端能识别请求体格式

内容的提问来源于stack exchange,提问作者Majoris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:23:10