jQuery的Ajax介绍-jQuery.ajax(options)

通过HTTP请求加载远程数据

jQuery底层AJAX实现。简单易用得高层实现间$.get,$.post等。

$.ajax()返回其创建的XMLRequest对象。大多数情况下你无需直接操作该对象,但特殊情况下可用于手动终止请求。

$.ajax()只有一个参数:参数key/value对象,包含各配置及回调函数信息。

注意:如果你制定了dataType选项,请确保服务器返回正确的MIME信息,(如xml返回"text/xml")。错误的MIME类型可能导致不可预知的错误。

注意:如果dataType设置为“script”,那么在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

jQuery1.2中,您可以跨域加载JSON数据,使用时需将数据类型设置为JSONP。使用JSONP形式调用函数时,如“myurl?callback=?”jQuery将自动替换为?为正确的函数名,以执行回调函数。数据类型设置为"jsonp"时,jQuery将自动调用回调函数。

返回值:XMLHttpRequest

参数:options(可选):AJAX请求设置。所有选项都是可选的。

选项:async(Boolean):(默认:true)默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。

beforeSend(Function):发送请求前可以修改XMLHttpRequest对象的函数,如添加定义HTTP头。XMLHttpRequest对象是唯一的参数。这是一个Ajax事件。如果返回false可以取消本次ajax请求。

function(XMLHttpRequest) {

this;// 调用本次AJAx请求时传递的options参数

}

cache(Boolean):(默认:true,dataType为scipt时默认为false)jQuery1.2新功能,设置为false将不会从浏览器缓存中加载请求信息。

complete(Function):请求完成后回调函数(请求成功或失败时均调用)。参数:XMLHttpRequest对象和一个描述成功请求类型的字符串。

function(XMLHttpRequest, textStatus) {

       this; // 调用本次AJAX请求时传递的options参数

}

contentType(String):(默认:"application/x-www-form-urlncoded")发送信息至服务器时内容编码类型。默认值适合大多数应用场合。

data(Object, String): 发送到服务器的数据。将自动转换为请求字符串格式。GET请求中将附加在URL后。查看processData选项说明以禁止此自动转换。必须为Key/Value格式。如果为数组,jQuery将自动为不同值对应同一个名称。如果为数组,jQuery将自动为不通值对应同一个名称。如{foo:["bar1", "bar2"]}转换为'&foo=bar1&foo=bar2'。

dataFilter(Function):给Ajax返回的原始数据的进行预处理的函数。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

function (data, type) {

 

// 对Ajax返回的原始数据进行预处理

    return data  // 返回处理后的数据

 

}

dataType(String):(默认值:只能判断xml或者html)预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息返回responseXML或responseText,并作为回调函数传递,可用值:

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

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

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

"json": 返回JSON数据。

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

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

error(Function):(默认:自动判断(xml或html))请求失败时调用时间。参数有以下三个:XMLHttpRequest对象、错误信息、捕捉的错误对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout","error","notmodified"和"parseerror"。

function(XMLHttpRequest, textStatus, errorThrown) {

     

      // 通常textStatus和errorThrown之中

      // 只有一个会包含信息

      this;// 调用本次AJAX请求时传递的options参数

 

}

global(Boolean):(默认:true)是否触发全局AJAX事件。设置为false将不会触发全局AJAX事件,如ajaxStart或ajaxStop可用于控制不同的Ajax事件。

ifModified(Boolean):(默认:false)仅在服务器数据改变时获取新数据。使用HTTP包Last-Modified头信息判断。

jsonp(String):在一个jsonp请求中重写回调函数的名字。这个值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,不如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

password(String):用于相应HTTP访问认证请求的密码

processData(Boolean):(默认:true)默认情况下,发送的数据将被转换为对象(技术上讲并非字符串)以配合默认内容类型"application/x-www-form-urlendoded"。如果要发送DOM树信息或其它希望转化的信息,请设置为false。

scriptCharset(String):只有当请求时dataType为"jsonp"或"script",并且type是"GET"才会用于强制修改charset。通常在本地和远程的内容编码不同时使用。

success(Function):请求成功后的回调函数。参数:由服务器返回,并根据dataType参数进行处理后的数据;描述状态的字符串。
function(data, textStatus) {

 

      // data可能是xmlDoc,jsonObj,html,text等等...

      this;// 调用本次AJAX请求时传递的options参数

 

}

timeout(Number):设置请求超时时间(毫秒)。此设置将覆盖全局设置。

type(String):(默认:"GET")请求方式("POST"或"GET"),默认为"GET"。注意:其它HTTP请求方法,如PUT和DELETE也可以使用,但仅部分浏览器支持。

url(String):(默认:当前页地址)发送请求的地址。

username(String):用于响应HTTP访问认证请求的用户名

xhr(Function):需要返回一个XMLHttpRequest对象。默认在IE下是ActiveXObject而其他情况下是XMLHttpRequest。

示例:

加载并执行一个JS文件。

jQuery代码:

$.ajax({

      type: 'GET',
      url: 'test.js',
      dataType: 'script'

});

保存数据到服务器,成功时显示信息。

$.ajax({

     type: 'POST',
     url: 'some.php',
     data: 'name=John&location=Boston',
     success: function(msg) {
	alert("Data Saved:" + msg);
     }

});

装入一个HTML网页最新版本。

$.ajax({

    url: "test.html",
    cache: false,
    success: function(html) {
         $("#results").append(html);
    }

});

同步加载数据。发送请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。

var html = $.ajax({

    url: "some.php",
    async: false

}).responseText;

发送XML数据至服务器。设置processData选项为false,防止自动转换数据格式。

var xmlDocument = [create xml document];
$.ajax({

    url: "page.php",
    processData: false,
    data: xmlDocument,
    success: handleResponse

});






 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值