首页新闻找找看学习计划

关于Firefox输出Response.Write("")问题

0
悬赏园豆:15 [已关闭问题] 关闭于 2012-03-01 10:54

我有一个html登陆页面、一个js文件、一个ashx一般处理程序文件。

正在做使用JQuery Ajax异步提交登陆,现在遇到一个问题就是Firefox浏览器总是把Response.Write("")的返回值打印到浏览器上,不知道为什么?该怎么解决呢?

下面是代码,请各位高手给看看,帮小弟解决下.

HTML页面:

 1 <form method="post" action="LoginHandler.ashx" id="form" name="form">
2 <div id="divLogin">
3 <div class="divUserName">
4 <input name="USERNAME" id="USERNAME" type="text" style="width: 230px; height: 28px; font-size: x-large;"
5 onmouseover="this.focus()" onfocus="this.select()" value=""/>
6 </div>
7 <div class="divPassWord">
8 <input name="PASSWORD" id="PASSWORD" type="password" style="width: 230px; height: 28px; font-size: x-large;"
9 onmouseover="this.focus()" onfocus="this.select()" value=""/>
10 </div>
11 <div class="divLoginButton">
12 <input type="image" id="imglogin" src="Images/krsoftlogin.gif"/>
13 </div>
14 <div class="divCancelButton">
15 <input type="image" src="Images/krsoftcancel.gif" onclick="LoginClear();return false;"/>
16 </div>
17 </div>
18 <div id="divleftLogo">
19 </div>
20 <input type="hidden" id="HideHashVal" value="sss"/>
21 <input type="hidden" id="HideIAID"/>
22 </form>


Js代码:

$(document).ready(function() {
$("#imglogin").click(function(){
login();
//return false;
});


});

function login() {

var user = $("#USERNAME").val();
var pass = $("#PASSWORD").val();
if (user == "") {
alert('请输入用户名');
$("#USERNAME").focus();
return false;
}
if (pass == "") {
alert('请输入密码');
$("#PASSWORD").focus();
return false;
}

$.ajax({
type: "POST",
url: "LoginHandler.ashx",
data: "USERNAME=" + user + "&PASSWORD=" + pass,
beforeSend: function() { },
success: function(msg) {
if (msg == "2") {
if(CheckBrowser()=="Firefox"||CheckBrowser()=="Chrome")
{
$("document").load("Index.aspx");
}
else
{
window.location.href="Index.aspx";
}
}
else if (msg == "1") {
alert('用户名不正确');
}
else if (msg == "3") {
alert('密码不正确');
}
else {
alert('登录失败');
}
}
});
}

 

ashx代码:

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("1");
}
Dayiba狼的主页 Dayiba狼 | 初学一级 | 园豆:33
提问于:2012-02-24 11:02
< >
分享
所有回答(4)
0
imglogin控件的点击事件触发了form表单的submit事件,把form表单去掉或者加onsubmit="return false"
az235 | 园豆:8263 (大侠五级) | 2012-02-24 11:14

不行啊!加上onsubmit="return false"就不提交了

支持(0) 反对(0) Dayiba狼 | 园豆:33 (初学一级) | 2012-02-24 11:19

@Dayiba狼: 在哪里加的?

支持(0) 反对(0) az235 | 园豆:8263 (大侠五级) | 2012-02-24 11:22

@az235: 在form上啊

支持(0) 反对(0) Dayiba狼 | 园豆:33 (初学一级) | 2012-02-24 11:25

@az235: <form method="post" action="LoginHandler.ashx" _disibledevent="return false" name="form">

支持(0) 反对(0) Dayiba狼 | 园豆:33 (初学一级) | 2012-02-24 11:26

@Dayiba狼: 这是onsubmit吗?

支持(0) 反对(0) az235 | 园豆:8263 (大侠五级) | 2012-02-24 11:30
0

你可以把form标签中的method="post" action="LoginHandler.ashx" 给去掉,不然就相当于执行了两次调用了。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-02-25 10:57

不行啊。IE和Firfox对异步请求的处理有什么区别吗?

支持(0) 反对(0) Dayiba狼 | 园豆:33 (初学一级) | 2012-02-25 11:05

没什么区别,你看一下这个例子:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="../JS/jquery-1.4.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            $("#btn").click(function() {
                $.ajax({
                    url: "LoginHandler.ashx", type: "POST",
                    success: function(responseText) {
                        $("span").html("返回正常" + responseText);                                        
                    }
                });
            });
        });
    </script>

</head>
<body>
    <form action="">
    <span></span>
    <div>
        <input type="button" value="请求" />
    </div>
    </form>
</body>
</html>

没什么问题,你可以先把其它的代码屏蔽掉,只查看ajax请求的代码,试试看。。。

 

支持(0) 反对(0) KivenRo | 园豆:1722 (小虾三级) | 2012-02-25 11:22
mode
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script src="../JS/jquery-1.4.2.min.js" type="text/javascript"></script>

<script type="text/javascript">
$(document).ready(function() {
$("#imglogin").click(function() {
login();
});
});
function login() {
var user = $("#USERNAME").val();
var pass = $("#PASSWORD").val();
if (user == "") {
alert('请输入用户名');
$("#USERNAME").focus();
return false;
}
if (pass == "") {

alert('请输入密码');
$("#PASSWORD").focus();
return false;
}
$.ajax({
type: "POST",
url: "LoginHandler.ashx",
data: "USERNAME=" + user + "&PASSWORD=" + pass,
beforeSend: function() { },
success: function(msg) {
if (msg == "2") {
if (CheckBrowser() == "Firefox" || CheckBrowser() == "Chrome") {
$("document").load("Index.aspx");
}
else {
window.location.href = "Index.aspx";
}
}
else if (msg == "1") {
alert('用户名不正确');
return false;
}
else if (msg == "3") {
alert('密码不正确');
return false;
}
else {
alert('登录失败');
return false;
}
}
});
}

</script>

</head>
<body>
<form id="form" name="form" action="">
<div id="divLogin">
<div>
<input id="USERNAME" type="text" _disibledevent="this.focus()" _disibledevent="this.select()" />
</div>
<div>
<input id="PASSWORD" type="password" _disibledevent="this.focus()" _disibledevent="this.select()" />
</div>
<div>
<input type="button" id="imglogin" value="请求" />
</div>
</div>
</form>
</body>
</html>

这是你原来的代码,也没什么问题啊,执行通过啊。。。再不然就是你浏览器的问题了。。。
 

支持(0) 反对(0) KivenRo | 园豆:1722 (小虾三级) | 2012-02-25 11:38
0

Pleade add this:Respone.End();

--宁静以致远-- | 园豆:364 (菜鸟二级) | 2012-02-25 11:54
0

ashx中,去掉 context.Response.ContentType = "text/plain";

Good life | 园豆:204 (菜鸟二级) | 2014-08-21 16:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册