AJAX 是开发者的梦想,因为您能够:
不刷新页面更新网页
在页面加载后从服务器请求数据
在页面加载后从服务器接收数据
在后台向服务器发送数据
当我们使用AJAX向后端发送请求时 发生了错误!

这个415的错误是怎么发生的呢?
这个我们就需要去了解下AJAX中的contentType(内容类型)
常见contentType
application/x-www-form-urlencoded
multipart/form-data
application/json
application/xml 和 text/xml
这个我们就需要和后端的参数类型对应
如果不对应后端的类型那么就会报错415
现在我们来修改一下与后端一致
代码如下:
contentType: "application/json",
接下来又报错啦 却是400

这个是什么情况发生的呢?
这个就是参数传输的问题啦!
看看我们的参数是怎么传输的呢?
data : {"demo" : "","demo" : "","demo" : ""},看出这个参数这样传输有问题吗?
由于我们上面的类型是application/json
那么我们传给后端的参数需要json序列化一下后端才能接收到。
应该如何做json序列话呢就需要用到 JSON.stringify(数据内容)
这样修改以后 就可以正常调用接口啦!
完整代码如下:
$.ajax({
type: "POST",//请求方式get、post
contentType: "application/json",
dataType:'json',//json 返回值类型
//async:false,
url: "url",//服务器请求地址
data: JSON.stringify(json),
//data: json,
success: function (data) {
alert(data);
},
error: function (xhr, textStatus, errorThrown) {
/*错误信息处理*/
alert("进入error---");
alert("状态码:" + xhr.status);
alert("状态:" + xhr.readyState);//当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
alert("错误信息:" + xhr.statusText);
alert("返回响应信息:" + xhr.responseText);//这里是详细的信息
alert("请求状态:" + textStatus);
alert(errorThrown);
alert("请求失败");
}
});





赞









