参数 描述
url 必需。规定把请求发送到哪个 URL。
data 可选。映射或字符串值。规定连同请求发送到服务器的数据。
success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。
dataType可选。规定预期的服务器响应的数据类型。
默认执行智能判断(xml、json、script 或 html)。
jQuery.post(url,data,success(data, textStatus, jqXHR),dataType);
$.ajax({
type:
'POST'
,
url: url,
data: data,
success: success,
dataType: dataType
});
大部分实现会规定一个 success 函数://该函数是简写的 Ajax 函数,等价于:
$.post(
"ajax/test.html"
,
function
(data) {
$(
".result"
).html(data);
});
//jQuery 1.5 中的约定接口同样允许 jQuery 的 Ajax 方法,包括 $.post(),来链接同一请求的多个 .success()、.complete() 以及 .error() 回调函数,甚至会在请求也许已经完成后分配这些回调函数。
// 请求生成后立即分配处理程序,请记住该请求针对 jqxhr 对象
var
jqxhr = $.post(
"example.php"
,
function
() {
alert(
"success"
);
})
.success(
function
() { alert(
"second success"
); })
.error(
function
() { alert(
"error"
); })
.complete(
function
() { alert(
"complete"
); });
// 为上面的请求设置另一个完成函数
jqxhr.complete(
function
(){ alert(
"second complete"
); });
$(
"input"
).keyup(
function
(){
txt=$(
"input"
).val();
$.post(
"/jquery/gethint.asp"
,{suggest:txt},
function
(result){
$(
"span"
).html(result);
});
});
//通过 AJAX POST 请求改变 div 元素的文本:
//例子 1
//请求 test.php 页面,并一起发送一些额外的数据(同时仍然忽略返回值):
1
|
$.post(
"test.php"
, { name:
"John"
, time:
"2pm"
} );
|
//例子 2
//向服务器传递数据数组(同时仍然忽略返回值):
$.post(
"test.php"
, {
'choices[]'
: [
"Jon"
,
"Susan"
] });
//使用 ajax 请求发送表单数据:///例子 3
$.post(
"test.php"
, $(
"#testform"
).serialize());
//输出来自请求页面 test.php 的结果(HTML 或 XML,取决于所返回的内容)://例子 4
$.post(
"test.php"
,
function
(data){
alert(
"Data Loaded: "
+ data);
});
//向页面 test.php 发送数据,并输出结果(HTML 或 XML,取决于所返回的内容)://例子 5
$.post(
"test.php"
, { name:
"John"
, time:
"2pm"
},
function
(data){
alert(
"Data Loaded: "
+ data);
});
//获得 test.php 页面的内容,并存储为 XMLHttpResponse 对象,并通过 process() 这个 JavaScript 函数进行处理://例子 6
$.post(
"test.php"
, { name:
"John"
, time:
"2pm"
},
function
(data){
process(data);
},
"xml"
);
|
//例子 7
//获得 test.php 页面返回的 json 格式的内容:
$.post(
"test.php"
, {
"func"
:
"getNameAndTime"
},
function
(data){
alert(data.name);
// John
console.log(data.time);
// 2pm
},
"json"
);
|
$(
"#province"
).change(
function
(){
var
pid = $(
"#province option:selected"
).val();
var
href=
'/common/ajax_scenic.php?action=city&pid='
+pid+
'&'
+Math.random();
var
params = {
type:
'GET'
,
url:href,
dataType:
'text'
,
success:
function
(data){
jQuery(
"#city"
).append(data);
}
};
jQuery.ajax( params );
});
|
$.ajax({
url:
'/member/ajax.php'
+Math.random(),
dataType:
'text'
,
data:encodeURI(
'action=edit_phone&uid='
+uid+
'&phone='
+phone),
success:
function
(data){
var
jsondata = eval(
'('
+data+
')'
);
if
(jsondata.result==
'failure'
){
alert(jsondata.content);
}
if
(jsondata.result==
'success'
){
$(
'#comment_list'
).after(jsondata.html);
alert(
'评论成功!'
);
}
}
});
|
var
params = {
type:
'GET'
,
url:href,
dataType:
'text'
,
success:
function
(data){
jQuery(
"#city"
).append(data);
//$(".test").hide();
}
};
jQuery.ajax( params );
|
//完整的AJAX代码
$.ajax({
type:
'GET'
,
url:href,
dataType:
'text'
,
data:encodeURI(
'id=1&uid='
+uid),
beforeSend:
function
(){
$(
"#msg"
).html(
"logining"
);
},
success:
function
(data){
jQuery(
"#city"
).append(data);
},
complete:
function
(XMLHttpRequest, textStatus){
alert(XMLHttpRequest.responseText);alert(textStatus);
},
error:
function
(){} ,
});
|
$(
'#myform'
).ajaxForm({
beforeSubmit: checkForm,
success: complete,
dataType:
'json'
});
|