Javascript呼叫.axd文档

axd文档与ashx文档有相似的功能。此博文中,Insus.NET演示如何在Javascript呼叫到axd文档。能呼叫到axd文档,当然也可以呼叫到ashx的,不过此次axd是主角。

在你的专案的App_Code中,创建一个类别,记得要实作IHttpHandler接口。 

View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for InsusClass
/// </summary>
namespace Insus.NET
{
    public class InsusClass : IHttpHandler
    {
        public InsusClass()
        {
            //
            
// TODO: Add constructor logic here
            
//
        }

        public bool IsReusable
        {
            get { throw new NotImplementedException(); }
        }

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/Plain";
            string parm = context.Request.Params["v"];
            context.Response.Write("Hello, " + parm);        
        }
    }
}

 

 然后,在web.config注册axd文档:

 

为了做一个演示,我们可以在.aspx放置一个TextBox和一个Button。这样用户可以在文本框中输入文字,点击铵钮可以呼叫到它。

View Code
 <asp:TextBox ID="TextBoxName" runat="server"></asp:TextBox>
            <asp:Button ID="ButtonCall" runat="server" Text="Call"
                OnClientClick
="callAxd();" />

 

在铵钮中使用了OnClientClick="callAxd();", 是客户端执行,可以直接Ctrl + C,Ctrl + V帖于head 即可。

View Code
function callAxd() {
            var xhr = new XMLHttpRequest();

            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    alert(xhr.responseText);
                }
            }

            var url = "i.axd?v=" + document.getElementById('<%=TextBoxName.ClientID%>').value;
            xhr.open("GET", url, true);
            xhr.send();
        }

 

OK,我们运行一下:

 

posted @ 2012-11-12 16:04  Insus.NET  阅读(1112)  评论(1编辑  收藏  举报