读书人

一个关于$.ajax的用法

发布时间: 2012-09-24 13:49:41 作者: rapoo

求助一个关于$.ajax的用法
<script type="text/javascript">
function buyShopping(id) {
$.ajax( {
url : '../shopping/buyShopping',
type : 'get',
data : 'product.id='+id,
dataType :'json',
async : false,
success : function(data1) {
alert(data1);
}
});
}
</script>
想知道这个$.的用法是怎样用的,知道用法的高手能详细说明一下吗?

[解决办法]
jQuery.ajax( url, [ settings ] ) 返回: jqXHR
描述: 执行一个异步的HTTP(Ajax)的请求。

version added: 1.5jQuery.ajax( url, [ settings ] )
url一个用来包含发送请求的URL字符串。

settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。看jQuery.ajax( settings )下所有设置的完整列表。

version added: 1.0jQuery.ajax( settings )
settings一个以"{键:值}"组成的AJAX 请求设置。所有选项都是可选的。可以使用$.ajaxSetup()设置任何默认参数。

acceptsMap
默认: 取决于数据类型
内容类型发送请求头,告诉服务器什么样的响应会接受返回。如果accepts设置需要修改,推荐在$.ajaxSetup()方法中做一次。

asyncBoolean
默认: true
默认设置下,所有请求均为异步请求(也就是说这是默认设置为true)。如果需要发送同步请求,请将此选项设置为 false。跨域请求和dataType: "jsonp"请求不支持同步操作。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

beforeSend(jqXHR, settings)Function
发送请求前可修改 jqXHR(在jQuery 1.4.x的中,XMLHttpRequest) 对象的函数,如添加自定义 HTTP 头等。该jqXHR和设置作为参数传递的。这是一个Ajax事件 。beforeSend行数返回的false将取消该请求。在jQuery 1.5, beforeSend选项将被访问,不管请求的类型。

cacheBoolean
默认: true, dataType为"script"和"jsonp"时默认为false
如果设置为 false ,浏览器将不缓存此页面。

complete(jqXHR, textStatus)Function, Array
请求完成后回调函数 (请求成功或失败之后均调用)。这个回调函数得到2个参数: jqXHR (in jQuery 1.4.x, XMLHTTPRequest) 对象和一个描述成功请求类型的字符串("success", "notmodified", "error","timeout", or "parsererror") 。在jQuery 1.5, complete设置可以接受一个函数的数组。每个函数将被依次调用。这是一个Ajax事件 。

contents(added 1.5)Map
一个以"{字符串:正则表达式}"配对的对象,用来确定jQuery将如何解析响应,给定其内容类型。

contentTypeString
默认: 'application/x-www-form-urlencoded'
发送信息至服务器时内容编码类型。默认值是"application/x-www-form-urlencoded",适合大多数情况。如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器(即使没有数据要发送)。数据将总是使用UTF-8字符集传递给服务器;你必须译码这适当的在服务器端。

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

$.ajax({
url: "test.html",
context: document.body,
success: function(){
$(this).addClass("done");
}
});converters(1.5新增)Map
默认: {"* text": window.String, "text html": true, "text json": jQuery.parseJSON, "text xml": jQuery.parseXML}
一个数据类型对数据类型转换器的对象。每个转换器的值是一个函数,返回响应的转化值

crossDomain(1.5新增)
默认: 同域请求为false, 跨域请求为true
如果你想强制跨域请求(如JSONP形式)同一域,设置crossDomain为true。这使得例如,服务器端重定向到另一个域

dataObject, String
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为"{键:值}"格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。 如果值是一个数组( Array ), jQuery将在 多个连续的值具有相同的键值的基础上建立的传统设置(下述)。

dataFilter(data, type)Function
一个函数被用来处理XMLHttpRequest的原始响应数据。这是一个预过滤功能,净化响应。您应该返回安全数据。提供data和type两个参数:data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

dataTypeString
默认: Intelligent Guess (xml, json, script, or html)
预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:

?"xml": 返回 XML 文档,可用 jQuery 处理。.
?"html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
?"script": 评估为JavaScript并返回纯文本响应。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)


?"json": 评估为JSON响应,并返回一个JavaScript对象。1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。(见json.org的更多信息,正确的JSON格式。)
?"jsonp": JSONP 格式。使用JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
?"text": 返回纯文本字符串。
?多个空格分割的值:As of jQuery 1.5, jQuery可以从Content - Type头收到并转换一个您需要的数据类型。例如,如果你想要一个文本响应为XML处理,使用"text xml"数据类型。您也可以将一个JSONP的请求,以文本形式接受,并用jQuery以XML解析: "jsonp text xml"。同样地可以使用"jsonp xml"简写,将首先尝试从JSONP形式转换为XML,做不到这一点,并没有从文本,从JSONP形式转换为文本,然后到XML。
error(jqXHR, textStatus, errorThrown)Function
请求失败时调用此函数。有以下三个参数:jqXHR (在 jQuery 1.4.x中, XMLHttpRequest) 对象、描述发生的错误类型的一个字符串和捕获的异常对象。如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能是"timeout", "error", "abort" 和 "parsererror"。这是一个 Ajax Event。 在jQuery 1.5, 在error设置可以接受函数组成的数组。每个函数将被依次调用。 注意:此处理程序不被跨域脚本和JSONP形式的请求调用。

读书人网 >Java Web开发

热点推荐