$.ajax方法语法
$.ajax(options) |
|
参数 |
|
options |
(对象)一个对象的实例,其属性定义这个操作的参数。详情见下表。 |
返回值 |
XHR实例 |
options详细范围值
类型 |
描述 |
|
url |
字符串 |
请求的URL地址 |
type |
字符串 |
将要使用的HTTP方法。通常是POST或GET。如果省略,则默认为GET |
data |
对象 |
一个对象,其属性作为查询参数而传递请求。如果是GET请求,则把数据作为查询字符串传递;如果是POST请求,则把数据作为请求体传递。在这两种情况下,都是由$.ajax()实用工具函数来处理值的编码 |
dataType |
字符串 |
一个关键字,用来标识预期将被响应所返回的数据的类型。这个值决定再把数据传递给回调函数之前(如果有)进行什么后续处理。有效值如下: xml-响应文本被解析为XML文档,而作为结果的XML DOM被传递给回调函数 html-响应文本未经处理就被传递给回调函数。在已返回HTML片段内的任何<script>块将被求值 json-响应文本被求值为JSON字符串,而作为结果的对象被传递给回调函数 jsonp-与json相似,不同之处是提供远程脚本支持(假定远程服务器支持) script-响应文本被传递给回调函数。在任何回调函数被调用之前,响应被作为一个或多个JavaScript语句而进行处理 text-响应文本被假定为普通文本。服务器资源负责设置适当的内容类型响应标头。如果省略这个属性,则不对响应文本进行任何处理或求值就传递给回调函数 |
timeout |
数值 |
|
global |
布尔型 |
|
contentType |
字符串 |
将要在请求上指定的内容类型。默认为application/x-www-form-urlencoded(与表单提交所使用的默认类型相同) |
success |
如果请求的响应指示成功状态码,则这个函数被调用。响应体作为第一个参数被返回给这个函数,并且根据指定的dataType属性进行。第二个参数是包含状态码的字符串—这种情况下永远为成功状态码 |
|
error |
如果请求的响应返回错误状态码,则这个函数被调用。三个实参被传递给这个函数:XHR实例、状态消息字符串(在这种情况下永远为错误状态码)以及XHR实例所返回的异常对象(可选) |
|
complete |
请求完成时被调用。两个实参被传递:XHR实例和状态消息字符串(成功状态码或错误状态码)。如果也指定了success或error回调函数,则这个函数在success或error回调函数调用之后被调用 |
|
beforeSend |
||
async |
布尔型 |
如果指定为false,则请求被提交为同步请求。在默认的情况下,请求是异步的 |
processData |
布尔型 |
如果设置为false,则阻止已传递数据被加工为URL编码格式。默认情况下,数据被加工为URL编码格式(适用于类型为application/x-www-form-urlencoded的请求) |
ifModified |
布尔型 |
如果设置为true,则自从上一次请求以来,只有在响应内容没有改变的情况下(根据Last-Modified标头)才允许请求成功。如果省略,则不执行标头检查 |
下面看个例子,尽可能多的用到options中的选项
客户端代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@H_403_326@
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
head
>
title
></
>
script
@H_426_403@type="text/javascript">
src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></
>
$().ready(function () {
$('#selectNum').change(function () {
var idValue = $(this).val();
var show = $('#show');
$.ajax({
url: 'Server.aspx',
type: 'POST',
data: { id: idValue },
//调小超时时间会引起异常
timeout: 3000,
//请求成功后触发
success: function (data) { show.append('success invoke!' + data+'<
br
/>'); },
//请求失败遇到异常触发
error: function (xhr,errorInfo,ex) { show.append('error invoke!errorInfo:' + errorInfo+'<
//完成请求后触发。即在success或error触发后触发
complete: function (xhr,status) { show.append('complete invoke! status:' + status+'<
//发送请求前触发
beforeSend: function (xhr) {
//可以设置自定义标头
xhr.setRequestHeader('Content-Type','application/xml;charset=utf-8');
show.append('beforeSend invoke!' +'<
/>');
},
//是否使用异步发送
async: true
})
});
})
</
>
>
body
>
select
id="selectNum">
<
option
value="0">--Select--</
>
value="1">1</
>
value="2">2</
>
value="3">3</
>
>
div
id="show"></
>
>
>
|
服务端主要代码:
protected
void
Page_Load(
object
sender,EventArgs e)
{
if
(!Page.IsPostBack)
{
@H_426_403@
(Request[
"id"
] !=
null
&& !
string
.IsNullOrEmpty(Request[
].ToString()))
{
//启用该句会引发ajax超时异常
// System.Threading.Thread.Sleep(3000);
Response.Write(GetData(Request[
].ToString()));
}
}
}
GetData(
id)
{
str =
.Empty;
switch
(id)
{
case
"1"
:
str +=
"This is Number 1"
;
break
;
"2"
:
"This is Number 2"
;
;
"3"
:
"This is Number 3"
;
;
default
:
"Warning Other Number!"
;
;
}
return
str;
}
|
运行程序,结果如图: