Jquery Ajax基本结构
$.ajax({
url:"发送请求(提交或读取数据)的地址",
dataType:"预期服务器返回数据的类型",
type:"请求方式",
async:"true/false",
data:{发送到/读取后台(服务器)的数据},
success:function(data){请求成功时执行},
error:function(){请求失败时执行}
});
一个 jquery ajaxs示例
$(function(){
//请求参数
var list = {};
//
$.ajax({
//请求方式
type : "POST",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "http://127.0.0.1/admin/list/",
//数据,json字符串
data : JSON.stringify(list),
//请求成功
success : function(result) {
console.log(result);
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
});
Ajax请求通过XMLHttpRequest对象发送请求,
该对象有五个状态(readyState):
- 0-未初始化、
- 1-正在初始化、
- 2-发送数据、
- 3-正在发送数据、
- 4-完成
当XMLHttpRequest.readyState为4时,表示ajax请求已经完成可以得到响应结果。
ajax的success和error方法根据响应状态码来触发。
当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success().
其他状态码则触发error()。
除了根据响应状态码外,ajax还会在下列情况下走error方法:
返回数据类型不是JSON
网络中断
后台响应中断
返回JSON格式引发parsererror错误
很多时候会遇到明明成功请求到后台,后台也返回了数据到前端,htttp状态是200,却发生parsererror错误,并不执行success方法。
这是因为:jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,否则都会出错,无法解析返回的json数据。
JSON格式总结下,详细的去json.org 查看
1)键名称:用双引号 括起
2)字符串:用双引号 括起
3)数字,布尔类型不需要 使用双引号 括起
例如:返回的是{success:true,id:1}
这种不规则的字符串,不是严格的json格式,改成{"success":true,"id":"1"}
就可以正常执行success回调了。
参考 :
- https://blog.csdn.net/Yuan_mingyu/article/details/86748591
- https://www.cnblogs.com/kunmomo/p/12849753.html