ajax弹出状态值 400 (Bad Request)

本文介绍了一个关于SpringBoot项目中使用Ajax发送JSON数据时遇到的问题及解决过程。作者最初尝试了多种方法来构造请求数据,包括使用serialize()和serializeArray()等方法,但最终发现只有直接构建JSON字符串的方式才能成功发送数据并被服务端正确接收。
摘要由CSDN通过智能技术生成
$.ajax({
    url: url,
    type: method,
    data: JSON.stringify(f.serialize()) ,
    dataType: "json",
    headers:{"Content-Type":"application/json;charset=UTF-8"},
    success: function (d) { /* 其他代码 */ }, error: function (result) {   console.log(result); }});
错误报文:java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2; 

调试很久没调通,服务端是Springboot,用Bean来接收json数据。开始以为Bean字段大小写的问题,我在前后端参数传递过程不停地切换字段首字母大小写,貌似通过服务端验证,但最后落在400 Bad Request这条错误反馈上。最后把关注焦点转移到提交数据的建立方式上,f.serialize()换成f.serializeArray()还是不行,最后正常通过数据用的是笨方法:直接拼装json。

var params={ trade_type:"NATIVE", name: "TEST"}
$.ajax({
url: url,
type: method,
data: JSON.stringify(params) ,    
dataType: "json",
headers:{"Content-Type":"application/json;charset=UTF-8"},
success: function (d) {
        /* 其他代码 */
    },
error: function (result) {
        console.log(result);
    }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值