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#