当前位置: 代码迷 >> Java Web开发 >> 一个关于$.ajax的用法
  详细解决方案

一个关于$.ajax的用法

热度:3943   发布时间:2013-02-25 21:11:25.0
求助一个关于$.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",
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标签来加载)
  相关解决方案