jQuery中的Ajax
$.ajax()常用选项参数介绍
- 功能:通过 HTTP 请求加载远程数据。
- 返回值:$.ajax() 返回其创建的 XMLHttpRequest 对象
url: 请求地址
type:请求方法,默认为get
dataType: 服务端响应数据类型
contentType:请求体内容类型(存在默认值)
- 默认:`application/x-www-form-urlencoded`
data: 需要传递到服务端的数据 (必须是key value形式的数据)
- 如果GET则通过URL传递
- 如果POST则通过请求体传递
timeout:请求超时时间
- 设置请求超时时间(毫秒 ms 1000ms = 1s)
beforeSend:请求发送之前触发
- 在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。
success:请求成功之后触发(响应状态码200)
- success方法参数
- 1.由服务器返回
- 2.根据dataType参数进行处理后的数据。这样就不用自己去调用JSON.parse()去转换了。
- (类对象数组,通过下标的不同存储多个对象)
error:请求失败触发
- 在请求出错时调用。
- 传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)
- 注意:
- 当我们输入下标越界的时候,返回的是一个长度为0的空数组,并没有执行error函数。因为下标超过,其实是发送请求成功了,只是结果为空而已。
- error函数只有在传递的url错误的时候,才会被触发。
complete:请求完成触发(不管成功与否,都会触发)
- 当请求完成之后调用这个函数,无论成功或失败。
- 传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。
代码演示
$.ajax({
url:"http://localhost:3000/posts",
type:"get",
dataType:"json",
contentType:"application/x-www-form-urlencoded",
data:{"id":5},
timeout: 1000,
beforeSend: function (xhr){
console.log("before send");
},
success: function (data){
console.log(data);
},
error: function (xhr){
console.log("error:" + xhr);
},
complete: function (xhr){
console.log("请求完成");
}
});
状态码
- 为了保证数据顺利取到 且 可用:readyState = 4 & status = 200;
- 500: 服务器端出现错误
- 304:不是从服务器中取数据 而是 从缓存中读取的数据
- 201: 资源已创建
GET请求
$.get()
- GET请求快捷方法
- $.get(url,data,callback,dataType)
- url必须有,data\callback\dataType都可以省略
- 回调函数有三个参数:response status xhr
- 代码演示
$.get("http://localhost:3000/posts",{"id":2},function (data){
console.log(data);
});
POST请求
$.post()
- POST请求快捷方法
- $.post(url,data,callback,dataType)
- 代码演示
$.post("http://localhost:3000/comments",{content:"bad"},function (data){
console.log(data);
});
其他请求
put 更改
- put方法,传递的url必须是筛选后的一个
- data传递需要修改的内容,修改的过程中不是只修改一个,而是将这一个里面的所有属性全部替换。
- 代码演示
$.ajax({
url:"http://localhost:3000/comments/4",
type:"put",
dataType:"json",
data:{content:"bad",postId:3},
success:function (data){
console.log(data);
}
});
delete 删除
$.ajax({
url:"http://localhost:3000/comments/4",
type:"delete",
dataType:"json",
success:function (data){
console.log(data);
}
});
jQuery中其他Ajax方法
举例:$.ajaxSetup()
- 功能:为所有 AJAX 请求设置全局 AJAX 默认选项。
- 语法:jQuery.ajaxSetup(name:value, name:value, ...)
- 代码演示
$.ajaxSetup({
url:"http://localhost:3000/comments",
type:"post",
success:function (data){
console.log(data);
}
});
$.ajax({
data:{postId:3,content:"sad"}
});
$.ajax({
data:{postId:1,content:"perfect"}
});