前端向后端传参(json),接口中的参数会被序列化了,怎么处理

问题描述

image.png

image.png

问题出现的环境背景及自己尝试过哪些方法

目前看到的结果就是第二张图这样子,将数组分成一个一个键值对;
前端向后端传参(json),接口中的数组会被序列化了,本来应该是category:[03,030200],orgCode:[xxxxx,xxxxxx]

相关代码

粘贴代码文本(请勿用截图)

$.ajax({
 type: 'post',
 contentType: "application/json;charset=UTF-8",
 url: "xxx",
 data: params,
 dataType: "json",
 success: (res) => {  
    
 },
});

你期待的结果是什么?实际看到的错误信息又是什么?

期待的结果应该是一个json中既有属性,也有数组,数组category:[03,030200],orgCode:[xxxxx,xxxxxx]这种形式,请教一下 这个怎么处理呢

阅读 8.3k
6 个回答
$.ajax({
 type: 'post',
 contentType: "application/json;charset=UTF-8",
 url: "xxx",
 data: JSON.stringify(params),
 dataType: "json",
 success: (res) => {  
    
 },
});

感觉你这个请求不像post,倒是很像get请求, 浏览器地址栏的空格会被解析成另外一个格式
Query String Parameters

发起get请求参数显示与url上,其参数跟在?后面且以&分割不同的参数

这个没什么问题的,要么你直接交给后端处理,后端有很多办法可以解析出来的。
要么你和后端约定数据交换协议,在前端就把json先特殊处理一下,比如直接传递完整的json字符串,或者base64编码的json字符串,让后端直接解析。

你这是GET请求,参数被URLEncode了,这是正常操作,否则一些特殊字符会导致请求异常。
后端会自动解码一次。PHP,Java,Go等等都支持的

我咋觉得你没有把数据 jsonStringify ,直接就 formData 提交过去了的那种格式.....

这个格式是没有问题呀。
后端一般支持拿到数组。
不支持就自己写个解析就可以啦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题