jQuery异步请求

来源:互联网 发布:华为云计算平台 编辑:程序博客网 时间:2024/06/05 18:00

一直都是知道ajax异步请求,也一直在用,只是没有详细了解过。今天简单了解了一下,写一篇做记录。

一直都以为ajax异步请求都是差不多这种形式:

$.ajax({
            type: "post
/get",
            url: "
url",
            data: {"
a":a,"b":b},
            dataType: "text",
       success: function (data) {........ },
       error: function (msg) {........}
        });

其实错了,从API查看,$.ajax(url,[settings]);才是准确的。最简单的$.ajax()可以不带参数直接使用。可以看出除url所有的参数都是可选的。

下面简单说一下常用的参数:

url:String类型,发送请求的地址;

type:String类型,默认为“GET”。请求方式有“POST”、“GET”;

async:Boolean类型,默认为true。所有请求均为异步请求。如果设置为false,则所有请求为同步请求。注:同步请求会锁住浏览器;

timeout:Number类型,请求超时时间。此设置会覆盖全局设置;

context:Object类型,这个对象用于设置Ajax相关回调函数的上下文。也就是说让回调函数内this指向这个对象(如果不设定这个参数,那么this就指向调用本次AJAX请求时传递的options参数)。比如指定一个DOM元素作为context的参数,这样就设置了success回调函数的上下文为这个DOM元素。

$.ajax({ url: "test.html", context: document.body, success: function(){
    $(this).addClass("done");
}});

data:Object,String类型。发送到服务器的数据,将自动转换为请求字符串格式。如{foo:["bar1","bar2"]}会转换为"&foo=bar1&foo=bar2";

dataFilter:Function类型。对返回的数据进行预处理。function(data, type){return data;}。data为返回的原始数据,type为请求时dataType参数;

dataType:预期服务器返回的数据类型。可用值:

"xml":返回XML文档,可用jQuery处理;

"html":返回纯文本HTML信息,包含的script标签会在插入dom时执行;

"script":返回纯文本JavaScript代码,不会自动缓存结果,除非设置"cache"参数。注:在远程请求时(非同域),所有的POST请求都将转为GET请求,因为将使用DOM的script标签来加载。

"json":返回JSON数据;

"text":返回纯文本字符串;

"jsonp":JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

"success":Function,Array。(data, textStatus, jqXHR)请求成功后的回调函数。

"error":请求失败时调用此函数。

除了$.ajax还有简单易用的$.get和$.post

$.get/post(url,[data],[callback],[type])简单的get/post请求,替代复杂的ajax,如果需要在出错时执行函数,就要使用$.ajax。

原创粉丝点击