当前位置:编程学习 > C#/ASP.NET >>

AJAX htmlfile: 未知的运行时错误(求指导)

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

namespace HomeWork6._1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string[] a = new string[5];
            a[0] = "abc";
            a[1] = "sam";
            a[2] = "lucy";
            a[3] = "cat";
            a[4] = "dog";
            string q = Request.QueryString["q"];
            string result=" ";
            if (!String.IsNullOrEmpty(q))
            {
                foreach (string s in a)
                {
                    if (q == s)
                    {
                        result = "该用户名已经被注册";
                    }
                }
                if (string.IsNullOrEmpty(result))
                {
                    Response.Write(result);
                }
                else
                    Response.Write("");
            }

        }
    }
}

var xmlHttp;
function showHint(str) {
    if (str.length == 0) {
        document.getElementById("State").innerHTMAL = "";
        return;
    }
    if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
    else {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    var url = "Default.aspx";
    url = url + "?q=" + str;
    url = url + "&sid=" + Math.random();
    xmlHttp.open("Get", url, true);
    xmlHttp.onreadystatechange = statechanged;
    xmlHttp.send(null);
}
function statechanged() {
    if (xmlHttp.readyState == 4) {
        document.getElementById("State").innerHTML = xmlHttp.responseText;
    }

    }

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="HomeWork6._1._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
   <head>
   <script type="text/javascript" src="Aj.js"></script>
   </head>
    <p>
        用户名:<asp:TextBox ID="TextBox1" runat="server" Onkeyup="showHint(this.value)"></asp:TextBox><span id="State"></span>
    </p>
    <p>
        密码:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
    </p>
    <p>
        <asp:Button ID="Button1" runat="server" Text="注册" />
    </p>
</asp:Content>

希望牛人帮忙看一下~哪里错了~ --------------------编程问答-------------------- 你的Aj.js中document.getElementById("State").innerHTMAL =。。。是不对的。
因为你的页面里是嵌套在asp:Content 下的,所以这个你的<span id="State">在页面呈现到的id已经不是state了。
你可以查看网页的源文件,找到state到底是什么值,然后再getelementbyid("真正的id")。

后台代码应该没错,而且Ajax无论哪里出错,都会报——未知错误,很难判断,所以调试的时候多注意写的过程,留意容易出错的地方。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,