asp.net ajax提供經典的異步請求/響應模式的用戶端JS對象Sys.Net.WebRequest,本文将隻對Sys.Net.WebRequest的進行介紹。若想深入了解相關的其它JS對象,可以去翻閱幾千行的MicrosoftAjax.debug.js檔案。
執行個體化:
var req = new Sys.Net.WebRequest();
成員:
<b>成員名稱</b>
<b></b>
<b>描述</b>
add_completed(evt)
注冊一個回調事件
remove_completed(evt)
删除一個回調事件
completed(args)
請求完成事件
invoke()
開始請求
getResolvedUrl()
擷取完整請求位址
get_body()
擷取請求主體
set_body(args)
設定請求主體
get_executor()
擷取執行器,預設為Sys.Net.XmlHttpExecutor()
set_executor(exe)
設定執行器
get_headers()
擷取請求headers
get_httpVerb()
擷取請求方式
set_httpVerb(verb)
設定請示方式
get_timeout()
擷取逾時時間
set_timeout(val)
設定逾時時間
get_url ()
擷取請求位址
get_url(url)
設定請求位址
get_userContext()
擷取使用者上下文,或稱調用标記。
set_userContext(context)
設定使用者上下文
簡單示例
通過aspx和ashx來進行說明簡單用法,具體如下:
1.建立Web應用程式項目AspNetAjaxDemo,建立WebRequestDemo.aspx前端請求頁面和AjaxResponseHandler.ashx伺服器端響應Handler,具體如下圖所示:
2.WebRequestDemo.aspx中HTML代碼如下:
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="WebRequestDemo.aspx.cs"
Inherits="AspNetAjaxDemo.WebRequestDeme" %>
<!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 runat="server">
<title>WebRequest Demo</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
function btnHello_onclick() {
var req,name;
name = $get("txtName").value;
req = new Sys.Net.WebRequest();
req.add_completed(OnSuccess);
req.set_httpVerb("POST");
req.set_url("AjaxResponseHandler.ashx");
req.set_body("name="+name);
/*
//or GET
req.set_httpVerb("GET");
req.set_url("AjaxResponseHandler.ashx?name="+name);
// no body
*/
req.invoke();
}
function OnSuccess(executor, context){
if(executor.get_responseAvailable())
{
alert(executor.get_responseData());
}
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManagerDemo" runat="server">
</asp:ScriptManager>
</div>
</form>
<p>
name:<input id="txtName" type="text" />
<input id="btnHello" type="button"
value="Hello" onclick="return btnHello_onclick()" /></p>
</body>
</html>
3.AjaxResponseHandler.ashx代碼如下:
namespace AspNetAjaxDemo
{
/// <summary>
/// Ajax Response Handler
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class AjaxResponseHandler : IHttpHandler
public void ProcessRequest(HttpContext context)
{
String name;
context.Response.ContentType = "text/plain";
name = context.Request["name"];
context.Response.Write(String.Format("Hello {0}", name));
}
public bool IsReusable
get
{
return false;
}
4.開始測試。
<a href="http://blog.51cto.com/attachment/201106/180443467.jpg" target="_blank"></a>
參考頁面:
1.[Sys.Net.WebRequest class]http://www.asp.net/ajaxlibrary/Reference.Sys-Net-WebRequest-Class.ashx
本文轉自 彭金華 51CTO部落格,原文連結:http://blog.51cto.com/pengjh/591505