使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求。$.post方法是jQuery的实用工具方法。
$.post方法语法
$.post(url,parameters,callback) | |
参数 | |
url | (字符串)服务器端资源地址。 |
parameter | (对象)需要传递到服务器端的参数。 参数形式为“键/值”。 |
callback | (函数)在请求完成时被调用。该函数参数依次为响应体和状态。 |
返回值 | XHR实例 |
看个简单的例子
客户端代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<
html
xmlns="http://www.w3.org/1999/xhtml">
<
head
>
<
title
></
title
>
<
script
src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></
script
>
<
script
type="text/javascript">
$().ready(function () {
$('#selectNum').change(function () {
var idValue = $(this).val();
//采用POST方式调用服务
$.post('Server.aspx', { id: idValue }, function (text, status) { alert(text); });
})
})
</
script
>
</
head
>
<
body
>
<
select
id="selectNum">
<
option
value="0">--Select--</
option
>
<
option
value="1">1</
option
>
<
option
value="2">2</
option
>
<
option
value="3">3</
option
>
</
select
>
</
body
>
</
html
>
|
服务端主要代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
if
(Request[
"id"
] !=
null
&& !
string
.IsNullOrEmpty(Request[
"id"
].ToString()))
{
Response.Write( GetData(Request[
"id"
].ToString()));
}
}
}
protected
string
GetData(
string
id)
{
string
str =
string
.Empty;
switch
(id)
{
case
"1"
:
str +=
"This is Number 1"
;
break
;
case
"2"
:
str +=
"This is Number 2"
;
break
;
case
"3"
:
str +=
"This is Number 3"
;
break
;
default
:
str +=
"Warning Other Number!"
;
break
;
}
return
str;
}
|
运行程序,结果如图:
jQuery.post( url, [data], [callback], [type] ) :
使用POST方式来进行异步请求
参数:
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。
type (String) : (可选)官方的说明是:Type of data to be sent。其实应该为客户端请求的类型(JSON,XML,等等)
1.html页面(index.html)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
<script type="text/javascript" src=\'#\'" /jquery-1.3.2.js"></script>
<script language="javascript">
function checkemail(){
if($('#email').val() == ""){
$('#msg').html("please enter the email!");
$('#email').focus;
return false;
}
if($('#address').val() == ""){
$('#msg').html("please enter the address!");
$('#address').focus;
return false;
}
ajax_post();
}
function ajax_post(){
$.post("action.php",{email:$('#email').val(),address:$('#address').val()},
function(data){
//$('#msg').html("please enter the email!");
//alert(data);
$('#msg').html(data);
},
"text");//这里返回的类型有:json,html,xml,text
}
</script>
</head>
<body>
<form id="ajaxform" name="ajaxform" method="post" action="action.php">
<p>
email<input type="text" name="email" id="email"/>
</p>
<p>
address<input type="text" name="address" id="address"/>
</p>
<p id="msg"></p>
<p>
<input name="Submit" type="button" value="submit" οnclick="return checkemail()"/>
</p>
</form>
</body>
</html>
2.php页面(action.php)
<?php
$email = $_POST["email"];
$address = $_POST["address"];
//echo $email;
//echo $address;
echo "success";
?>
说明:当点击按钮时,注意按钮现在的类型是button.在不使用$.post()方法时,按钮类型是submit,这样submit提交form里的数据,采用post方法传递到页面action.php,这时在页面action.php中就能接受到传过来的数据。当采用$.post方法时,我们在函数ajax_post()方法中其实就是使用了post的方法。(要引用jquery库文件)