[郁闷!] 关于Ajax.Request() 小弟到底哪错了? 大侠们帮忙看看!

gongsun 2009-04-10 03:48:34
<script src="Content/js/prototype.js" type="text/javascript"></script>

String.prototype.Trim = function(){
return this.replace(/(^\s*)|(\s*$)/g,"");
};

function checkLoginName()
{
if(document.getElementById('txtUserName').value.Trim() != "")
{
var body='LoginName='+document.getElementById('txtUserName').value.Trim() +'&i='+Math.random();
new Ajax.Request('Views/Manager/Register/AjaxCheckLoginName.aspx',
{
method:'get',
parameters:body,
onComplete:showResponse
});
}
}

function showResponse(originalRequest)
{
var i = '1111'
alert(i); //这里i 能输出出来。
//----------------------------------------但到下面的时候就出错了!!!!!
var t = originalRequest.responseText;
alert(t);
if(t=="0")
{
document.getElementById('LoginNamelabel').innerHTML="用户名已存在";
}
else
{
document.getElementById('LoginNamelabel').innerHTML="用户名可用";
}
}



用户名:<input id="txtUserName" name="txtUserName" runat="server" type="text" onblur="checkLoginName()" />



AjaxCheckLoginName.aspx.cs文件中:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string username = Request.QueryString["LoginName"].ToString();
AjaxCheckLoginName(username);
}
}

private void AjaxCheckLoginName(string username)
{
ConsumerBLL userbll = new ConsumerBLL();
try
{
if (userbll.AjaxCheckLoginName(username) == 0) //这里调用方法 判断:返回值如果是 0 表示 该用户名未被注册!!
{
Response.Write("1"); //???????错在这?
HttpContext.Current.Response.End();
}
else
{
Response.Write("0");
HttpContext.Current.Response.End();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}



错在哪?
...全文
212 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongsun 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 Sandy945 的回复:]
要不 你新建一个,看看是不是还是同样的问题
[/Quote]


恩,我明天重新搞一个看看。

晕死了...
阿非 2009-04-14
  • 打赏
  • 举报
回复
要不 你新建一个,看看是不是还是同样的问题
gongsun 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 Sandy945 的回复:]
你断点加那里了?
[/Quote]

AjaxCheckLoginName.aspx.cs 中


我就不明白了,怎么就不行呢????????

我很愤慨!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

它根本就不 回传回来值。
阿非 2009-04-13
  • 打赏
  • 举报
回复
你断点加那里了?
gongsun 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 Sandy945 的回复:]
有那么难么? 加个断点不就知道哪有问题么
[/Quote]

大哥...加断点也的有反应啊。

断点加的根本就没反应...

本来没有问题的程序,现在真不知道怎么回事。
阿非 2009-04-11
  • 打赏
  • 举报
回复
有那么难么? 加个断点不就知道哪有问题么
gongsun 2009-04-11
  • 打赏
  • 举报
回复
晕死的了...
gongsun 2009-04-11
  • 打赏
  • 举报
回复
var t = originalRequest.responseText;

alert(t); // --------我想alert一下,看看t的值。但这里就卡住了。


如果我把 alert(t); 给注释掉。

那么不论这个用户名 有还是没有,都显示可以使用。

而且 页面除了 <asp:TextBox ID="txt" onblur="checkLoginName();" Text="123" runat="server"> </asp:TextBox>这个控件 可以显示,但别的控件都不可见。

点开源文件,别的控件也没有 hidden 属性

为什么???


@UserName nvarchar(50),
@ReturnId int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
select @ReturnId=Count(*) from Consumer where UserName=@UserName
if (@ReturnId <> 0)
return @ReturnId
else
return 0
END



sql语句有问题?????????????? 不至于吧???????????
gongsun 2009-04-11
  • 打赏
  • 举报
回复
new Ajax.Request('AjaxCheckLoginName.aspx',/*注意路径,我的是在同目录下,你改成相应的*/

路径绝对正确!

<asp:TextBox ID="txt" onblur="checkLoginName();" Text="123" runat="server"> </asp:TextBox>
if(document.getElementById(' <%=txt.ClientID %>').value.Trim() != "")

我写成:
<input id="txtUserName" name="txtUserName" runat="server" type="text" onblur="checkLoginName()" />
if(document.getElementById('txtUserName').value.Trim() != "")
虽然这个样子,但我
alert(document.getElementById('txtUserName').value); 能正确读出来值。


Response.End();
肯定加了...

------------------------------------
难道是<%=txt.ClientID %> 这个的原故??? 不至于吧?


阿非 2009-04-11
  • 打赏
  • 举报
回复
new Ajax.Request('AjaxCheckLoginName.aspx',/*注意路径,我的是在同目录下,你改成相应的*/
路径需要注意

<asp:TextBox ID="txt" onblur="checkLoginName();" Text="123" runat="server"></asp:TextBox>
if(document.getElementById('<%=txt.ClientID %>').value.Trim() != "")
控件的ID需要注意



Response.End();
Response之后加上

我是特意写的代码,运行无误才贴的。
gongsun 2009-04-11
  • 打赏
  • 举报
回复
这些都是固定写法,而且以前也没有出过问题。怎么现在就不行了呢?????????


郁闷啊!!!
gongsun 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 saisky 的回复:]
引用 24 楼 gongsun 的回复:
引用 23 楼 saisky 的回复:
还是断点看下的好,看看执行到后台没有。
怎么感觉好象没执行到后台似的呢。


晕,你也得能断点调试啊...

我是让你在后台断点,看到底执行到后台没
[/Quote]

断点不起作用...

传的时候有问题???
gongsun 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 Sandy945 的回复:]
我贴的有问题么?
[/Quote]

非哥哥,俺不知道是什么问题。...

所有问题都是样的。 我直接Response.Write() 这边出错。 alert(originalRequest.responseText); 根本就不执行。
saisky 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 gongsun 的回复:]
引用 23 楼 saisky 的回复:
还是断点看下的好,看看执行到后台没有。
怎么感觉好象没执行到后台似的呢。


晕,你也得能断点调试啊...
[/Quote]
我是让你在后台断点,看到底执行到后台没
gongsun 2009-04-11
  • 打赏
  • 举报
回复
他现在是 :Views/Manager/Register/AjaxCheckLoginName.ashx?LoginName=qqqqqq 传递到 AjaxCheckLoginName.ashx后


context.Response.ContentType = "text/plain";
string username = HttpUtility.UrlDecode(context.Request.QueryString["LoginName"].ToString());
context.Response.Write("1"); //直接 Response.Write() ,但index.aspx页的 xmlHttp.responseText没办法接收。



这2边不知道怎么就出了错。

我晕死了。
阿非 2009-04-11
  • 打赏
  • 举报
回复
我贴的有问题么?
gongsun 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 saisky 的回复:]
还是断点看下的好,看看执行到后台没有。
怎么感觉好象没执行到后台似的呢。
[/Quote]

晕,你也得能断点调试啊...
saisky 2009-04-11
  • 打赏
  • 举报
回复
还是断点看下的好,看看执行到后台没有。
怎么感觉好象没执行到后台似的呢。
saisky 2009-04-11
  • 打赏
  • 举报
回复
应该还是你服务端有错误

LZ测试个简单的后台试下
后台什么参数都不接收,直接Response.Write一个字符串
前台试着接下。
gongsun 2009-04-11
  • 打赏
  • 举报
回复
???
加载更多回复(20)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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