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("请求失败"); } });