Javascript 发布嵌套对象会破坏NodeJS后端中的编码

Javascript 发布嵌套对象会破坏NodeJS后端中的编码,javascript,node.js,express,utf-8,Javascript,Node.js,Express,Utf 8,我无法将包含特殊字符(如`)的JSON数据发送到我的Node Express服务器 我之前发过帖子,但我认为我处理问题的方法是错误的 问题: 当我使用HTTP客户端提交JSON表单数据时,我的req.bodyhtmlifes特殊字符: //发送嵌套的JSON.stringized对象 const response1=等待获取( `${baseUrl}/chhands/${granthState.lastChhand.id}/pauris`, { 方法:“POST”, 标题:{'Content-T

我无法将包含特殊字符(如
`
)的JSON数据发送到我的Node Express服务器

我之前发过帖子,但我认为我处理问题的方法是错误的

问题:

当我使用HTTP客户端提交JSON表单数据时,我的
req.body
htmlifes特殊字符:

//发送嵌套的JSON.stringized对象
const response1=等待获取(
`${baseUrl}/chhands/${granthState.lastChhand.id}/pauris`,
{
方法:“POST”,
标题:{'Content-Type':'application/json'},
正文:JSON.stringify({
波里:格式化的图克,
last_pauri_id:granthState.lastPauri?.id,
}),
}
);
这是控制台.log的结果ing
{pauri:formattedTuk,last\u pauri\u id:granthState.lastPauri?.id}

提交嵌套JSON对象时后端的外观:

这里是我更困惑的地方:

这里,我不发送嵌套对象,只发送
formattedTuk
[Array]对象,如下所示:

[
{
线路编号:1,
content_unicode:'ਆਪ ਅਛਤ ਸਮਰੱਥ ਪ੍ਰਭੁ ਦਈ ਬਡਾਈ ਨਾਮ ।',
内容:'Awp ACq smr'Q pRBu deI bfweI nwm[',
内容(音译)英文:
“啊,阿查特·萨马拉·普拉赫·迪耶·巴达伊·纳姆”,
首字母:'ਆਅਸਪਦਬਨ',
thamkis:[],
vishraams:[],
},
];
仅提交数组对象时后端的外观:

我尝试过的其他事情:

  • 使用Axios(而不是节点获取),它提供了相同的效果
  • 用过邮递员,效果也一样
  • 仔细检查了我的
    内容类型
    字符集
    ,但看起来都不错
这是我的Express中间件设置。我以前使用过
body parser
,但似乎
Express.json()
也给了我同样的效果。我也看到有人建议使用
qs.stringify()
,但我现在做的似乎相当简单

app.use(morgan('tiny'));
应用(头盔());
使用(express.json());
应用程序使用(cors());
更新:

  • 以下是准确的“复制为获取”值:
  • fetch(“http://localhost:1469/api/v1/chhands/53/pauris", {
    “标题”:{
    “接受”:“*/*”,
    “接受语言”:“en-US,en;q=0.9”,
    “内容类型”:“应用程序/json”,
    “sec fetch dest”:“空”,
    “秒提取模式”:“cors”,
    “sec获取站点”:“同一站点”
    },
    “推荐人”:http://localhost:3000/",
    “referrerPolicy”:“交叉来源时严格来源”,
    “正文”:“{\“pauri\”:[{\“line\u number\”:1,“content\u unicode\”:\”ਆਪ ਅਛਤ ਸਮਰੱਥ ਪ੍ਰਭੁ ਦਈ ਬਡਾਈ ਨਾਮ ।\“,”内容“:”Awp ACq smr`Q pRBu deI bfweI nwm[”,”内容“音译”英语“:”aap ACHAT samara'th PRBH dhiee baddaiee naam“,”第一个字母“:”ਆਅਸਪਦਬਨ\“,“thamkis\”:[],“vishraams\”:[],“last\u pauri\u id\”:60}”,
    “方法”:“发布”,
    “模式”:“cors”,
    “凭证”:“忽略”
    });
    
    这感觉更像是一个关于如何创建formattedTuk的问题,而不是您使用什么客户端的问题。怎么回事?当我记录它时,这正是预期的。此外,如果我在邮递员中发送相同的响应,比如:
    {“pauri”:[{…}],“last_pauri_id”:60}
    它仍然给出奇怪的编码。您能分享您的确切“fetch”吗请求?您可以通过右键单击“网络”部分中的请求并从打开的上下文菜单中选择“复制为获取”(仅在Chrome/Chrome中工作)@dsomel21 i可能会出错!apologies@ErolKESKİN我在“获取”中编辑过请求。这是一个非常有用的功能,但是在这里,我们可以看到我们发送的字符是正确的。
    // Sending the raw array object stringified {}
    const response2 = await fetch(
      `${baseUrl}/chhands/${granthState.lastChhand.id}/pauris`,
      {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(formattedTuk),
      }
    );