初学AJAX。。XMLHTTPresponseText问题

merui 2011-11-05 07:27:44
程序一运行到xmlhttpresponseText就停了,,下一句执行不了,为什么呢?
写最基本的注册页面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="regest.aspx.cs" Inherits="regest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
function checkName() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
var name = document.getElementById("userName").value;
if (name == null) {
alert("用户名为空");
return;
}
var url = "Default.aspx?name="+escape(name);

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
document.getElementById('span1').innerHTML = xmlhttp.responseText;
alert("用户名为空!");
}
}
xmlhttp.open("POST", url, true);
xmlhttp.send(null);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td align="center">新用户注册</td>
</tr>
<tr>
<td>
<input type="text" name="username" id="username" onchange="checkName()"; />
</td>
<td>
<span id="span1"></span>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

Defualt.aspx.cs里面的
public partial class _Default : System.Web.UI.Page 
{
protected void Page_Load(object sender, EventArgs e)
{

string name = Request["name"];
if (name == "sss")
{
Response.Write("测试成功");
}
}


}
...全文
177 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yj1300918200 2011-11-15
  • 打赏
  • 举报
回复
不是xmlhttpresponseText而是responseText吧
frankrenping 2011-11-12
  • 打赏
  • 举报
回复
不是提交大文件或密码之类的就用get方法较好。
licip 2011-11-10
  • 打赏
  • 举报
回复
xmlhttpresponseText 在代码中没有吧。
还有。
你提交的方式是用post的话,是要设置头的。
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
建议改为get方法。
无涯自成一方 2011-11-10
  • 打赏
  • 举报
回复
if (xmlhttp.readyState == 4)
改成
if (xmlhttp.readyState==4 && xmlhttp.status==200)

另外 var url = "Default.aspx?name="+escape(name);

内容不多,而且name的值不需要保密的话,用get方法
返回值的速度要快些


DemoChen 2011-11-09
  • 打赏
  • 举报
回复
var url = "Default.aspx?name="+escape(name);

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
document.getElementById('span1').innerHTML = xmlhttp.responseText;
alert("用户名为空!");
}
}
xmlhttp.open("POST", url, true);//get提交方式!
xmlhttp.send(null);
  • 打赏
  • 举报
回复
//POST方式要自己设置请求头:
xmlhttp.open("POST", url, true);
后面加:
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
然后再试下看看~
DemoChen 2011-11-07
  • 打赏
  • 举报
回复
xmlhttp.open("GET", url, true);//你这是get请求方式!不是post请求方式!
DemoChen 2011-11-07
  • 打赏
  • 举报
回复

xmlhttp.open("POST", url, true);//请把这两段代码换一个位置试试看!我没有这样写过!

xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
document.getElementById('span1').innerHTML = xmlhttp.responseText;
alert("用户名为空!");
}
}
zell419 2011-11-06
  • 打赏
  • 举报
回复
xmlhttp.readyState 正常到4没有 。
逐步排查下 。
-晴天 2011-11-06
  • 打赏
  • 举报
回复
哥们,你这个程序里,有 xmlhttpresponseText 么?
printf_2012 2011-11-06
  • 打赏
  • 举报
回复
没引http.js吧
潮起潮落 2011-11-05
  • 打赏
  • 举报
回复
if (xmlhttp.readyState == 4)
改为
if (xmlhttp.readyState == 4 && status == 200)
另外看一下是否是跨域了,最好的方法是打开firefox(要用firebug)或者chrome,在审查元素的网络一项看发出的请求和对应的响应分别是怎样。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧