AjaxでASPXと通信

Asp.net

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Form.AllKeys.Length > 0)
        {
            Response.Write(Request.Form[0]);
            Response.End();
        }
    }

Javascript

        // HTTP通信用オブジェクト作成
        var xmlObj;
        
        function createXMLHttpRequest() {
            if (window.ActiveXObject)
            { return new ActiveXObject("Msxml2.XMLHTTP"); }
            else if (window.XMLHttpRequest)
            { return new XMLHttpRequest(); }
            else { return null; }
        }

        function sendAjax() {
            var url = "AjaxTest.aspx";
            
            xmlObj = createXMLHttpRequest();
            xmlObj.onreadystatechange = CallBack;
            xmlObj.open('POST', url, true);
            xmlObj.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8");
            xmlObj.send("txt=" + ajaxForm.Request.value);
        }

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

[javascript側] createXMLHttpRequest 関数を呼び出して通信用オブジェクトを作成します。 onreadystatechange でレスポンスが帰ってきたと時の処理を指定します。このサンプルでは CallBack 関数に任せていますが、その中のifの条件文は定型と思ってもよいでしょう。 open メゾットではリクエストの種類、リクエストする先のパス、同期するかのフラグを指定します。 setRequestHeader も定型と考えてよいでしょう。最後に send でデータを送信します。送信メゾットが get のときはパスでデータを渡すのでここは null になります。

[asp.net側]クライアントからリクエストれた時はまず、Page_Loadが呼ばれます。このサンプルではリクエストがPOSTなので、Formで処理を分岐させています。 戻したい??値は responce.Write() で書き込んでいきます。最後にResponse.End() をしないと戻す予定の物だけでなく、ページの内容までが帰ってしまいます。