Ajax发送JSON数据时服务器返回400错误怎么办?
我在用jQuery的$.ajax发送POST请求时,把数据对象直接写在data参数里,服务器提示400错误说”Unexpected token”。
尝试过把contentType设成application/json,但没转成字符串就直接传对象了。后来看到控制台的请求体显示的是未格式化的键值对,服务器根本没解析成JSON结构。
$.ajax({
url: '/api/save',
method: 'POST',
data: { name: '测试', age: 25 },
contentType: 'application/json',
success: function(res){
console.log('成功');
}
});
用Postman测试过接口,传正确的JSON字符串没问题,但前端代码就是调不通,是不是少了什么关键步骤?
直接用这个:
关键点是用
JSON.stringify把对象序列化成JSON字符串,这样请求体才会是标准的JSON格式。另外记得确保服务器端确实需要application/json格式的数据,要是后端只认表单格式,那得改用默认的contentType。对了,调试的时候可以在浏览器network面板看看实际发出去的请求体,确认是不是正确的JSON格式。我之前也被这种问题坑过,后来就养成习惯总要检查下实际发出的请求。