首页 新闻 会员 周边

Ajax调用接口报错

0
[待解决问题]

业务场景:


业务上需要提交不带参数名的字符串数组给后台,

问题:


提交JSON前要将数据用JSON.stringify()将 JavaScript 值转换为 JSON 字符串,不然无法提交数据?

具体示例:


错误调用

 $.ajax({
                url: apiurl,
                type: "POST",
                data: ["0000000625"],
                dataType: "json",
                async: false,
                success: function (data) {
                   //do something
                   
                }
            });
Accept-Language: zh-CN,zh;q=0.9

undefined=

正确调用

 $.ajax({
                url: apiurl,
                type: "POST",
                data: JSON.stringify(["0000000625"]),
                dataType: "json",
                async: false,
                success: function (data) {
                   //do something
                   
                }
            });
Accept-Language: zh-CN,zh;q=0.9

["0000000647"]

接口后台接收:

[HttpPost]
       
 public HttpResponseMessage TiJiaoData(string[] postarr)
 {
    //do something
}
cker90的主页 cker90 | 菜鸟二级 | 园豆:258
提问于:2021-09-12 10:15
< >
分享
所有回答(3)
0
  • 上送数据时,没有使用 contentType 指定数据类型,默认为 application/x-www-form-urlencoded
  • dataType 是预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断
  • 不清楚你要弄明白什么问题。输出 undefined 不一定是报文格式的问题。ajax请求类型要跟后端数据参数和返回值类型对的上。
去哪里吃鱼 | 园豆:462 (菜鸟二级) | 2021-09-14 09:20

能不能上代码,看看错误的代码如何调整

支持(0) 反对(0) cker90 | 园豆:258 (菜鸟二级) | 2021-09-30 13:14
0

提交纯文本需要指定 contentType 参数

 $.ajax({
                url: apiurl,
                type: "POST",
                data: "0000000625",
                dataType: "json",
                contentType: "text/plain",
                async: false,
                success: function (data) {
                   //do something
                   
                }
            });
by.Genesis | 园豆:2719 (老鸟四级) | 2021-09-14 09:49

这个后台还是接收不到

支持(0) 反对(0) cker90 | 园豆:258 (菜鸟二级) | 2021-09-30 13:14
0

一楼正解。

丿如何是好 | 园豆:226 (菜鸟二级) | 2021-09-17 14:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册