1. 程式人生 > >ajax xmlhttprequest非同步獲取後臺資料(二)

ajax xmlhttprequest非同步獲取後臺資料(二)

前臺程式碼:

<%@ Page Title="主頁" Language="C#"  AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="ajax測試二._Default" %>

<html>
<head>
<script type="text/javascript">
    function getHttpObj() {
        var httpobj = null;
        try {
            httpobj = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                httpobj = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e1) {
                httpobj = new XMLHttpRequest();
            }
        }
        return httpobj;
    }

    function cs() {
        var obj = getHttpObj();
        var sel1 = document.getElementById('cs1');
        obj.open("get", "default.aspx?id=" + cs1.value, true); //記得小寫,親,並且default.aspx不區分大小寫,這裡在IE存在快取問題,使用下面的可以解決
        obj.open("get", "default.aspx?id=" + cs1.value + "&dt=" + new Date().getTime());//ajax非同步在IE下面存在快取,不會向後臺請求
        obj.send(); //記得小寫,親
        obj.onreadystatechange = function () {//此處為回撥函式
            if (obj.readyState == 4 && obj.status == 200) {
                alert(obj.responseText);
            }
        };
    }
</script>
</head>
<body>
<select id="cs1" onchange="cs();">
<option value="1">江西省</option>
<option value="2">福建省</option>
</select>

</body>
</html>

後臺程式碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ajax測試二
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] != null)
            {
                string id = Request.QueryString["id"];
                Response.Write(id + "aa");
                Response.End();
            }
        }
    }
}