jQuery中封装的ajax请求

总结一下jQuery中封装的ajax的使用方法

首先,jQuery那是真的香!

对比一下原生JavaScript的ajax请求方式

创建ajax对象
定义配置
发送请求
接收响应体
还得考虑兼容(想问IE什么时候删库?)

//做个兼容
if(){
var xhr = new XMLHttpRequest();
}else{
var xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
//get请求
xhr.open('get','http://.......?请求参数');
xhr.send();
xhr.onload = function(响应体参数){}

//post请求
//必须设定响应头以确保post能够正确传参
xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded');
xhr.open('post','地址');
xhr.send(请求参数);
xhr.onload = function(响应体参数){}

·
·
·
·

jQuery封装的ajax请求

$.get()请求方式

请求参数也可以写在地址?后面,dataType将会自动转换为你设定的参数表示的数据类型,例如json串

$.get({
            url:'请求地址',
            data:{请求参数:........},
            dataType:"你期望得到响应体的是什么数据类型",
            success:function(响应体参数){}
        })

·

$.post()请求方式

不用设定响应头,jQuery已经搞定一切,并且以jQuery封装的ajax请求不用再去写兼容

$.post({
            url:'请求地址',
            data:{请求参数:........},
            dataType:"你期望得到响应体的是什么数据类型",
            success:function(响应体参数){}
        })

·

$.ajax()请求方式

常规请求(非跨域请求)
参数N多个,地址必须有,其他看需求

$.ajax({
            url:请求地址,
            type:请求方式,默认为get,
            data:{请求参数},
            dataType:响应体数据类型,
            success:function(响应体参数){}
        })

以上是比较常用的一些参数,它们都以对象的方式存储
还有一些不太常用的参数,例如:

async : 设定是否异步,默认为true,异步执行。(正常来讲没人会用同步请求吧)
error :function(){} 请求发生错误时执行的函数
timeout : 设定最大请求时间(毫秒),如果超出时间,则认定请求失败
cache:设定是否缓存请求结果,默认true
context:指定执行函数中this的指向
·
跨域请求

3.4版本以上的jQuery支持代理方式的跨域请求,只要配置文件配置好就行
·
jsonp方式跨域
需要设定dataType的值为jsonp,并且添加一个jsonp属性,值是一个定义好的函数名,如果没有定义,默认为callback,在后台返回这个函数,参数就是需要返回的数据

$.ajax({
url:.....,
type:"post",
dataType:"jsonp",
jsonp:'myFunction',
success:function(接收响应体参数){}
})
function myFunction(){}

$para = $_POST;
echo "myFunciont(" . json_encode($para) . ")";

你可能感兴趣的:(jQuery中封装的ajax请求)