关于ajax在chrome,firfox下无响应的问题,在线等,100分

aptweasel 2014-10-15 11:23:49
我用jquery写了一个 ajax 请求,在IE下正常,在其它浏览器不支持, 不知道啥问题,请大侠们帮看看:

我的代码是这样的
本来都是使用jquery-1.11.1.min.js, 以为是版本问题,所以写了一个通过判断浏览器选用不同的jquery版本的方法,但是不管那个版本都不行!
<%
String brower=request.getHeader("User-Agent");
if(brower.indexOf("MSIE")>0){
out.print("<script src=\"js/jquery-1.11.1.min.js\"></script>");
}else{
out.print("<script src=\"js/jquery-2.1.1.min.js\"></script>");
}
%>
下面是我调用的方法:
<script>
$(document).ready(function() {

$("#tb01").click(function() {
var v_name = $.trim($("#username")[0].value);
var v_passwd = $.trim($("#password")[0].value);
if (v_name == "") {
alert("请输入用户名!");
} else if (v_passwd == "") {
alert("请输入密码!");
} else {
$.ajax({
url : "<%=basePath%>login/check.do",
type : 'post',
data : {
username : v_name,
password : v_passwd
},
dataType : 'json',
success : function(data) {
location.href = "<%=basePath%>index.jsp";
}
});
}
});
});
</script>
如果我使用url在chrome,firfox下写地址:http://localhost:7100/batch/login/check.do?username=admin&password=admin
返回的结果{"success":true,"msg":""}
但是通过页面正常请求

可以看出来,并没有响应,google 浏览器下也一样,没有响应报文
...全文
480 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
aptweasel 2014-10-16
  • 打赏
  • 举报
回复
准备结贴了,放弃这么玩了,不过知道了一些AJAX的一些特性,谢谢大家了,我把我最终的代码贴出来看看,不用AJAX实现。 用户验证和页面跳转我放到控制器里了: @Controller @RequestMapping("login") public class LoginAction extends Action { private Logger log = Logger.getLogger(this.getClass()); Gson json = new Gson(); @Autowired @Qualifier("loginService") private ILoginService loginService; @RequestMapping(value = "/check.do") public @ResponseBody String checkUser(HttpServletRequest request, HttpServletResponse response, LoginBean bean) { log.info(json.toJson(bean)); boolean flag = loginService.login(bean); String msg = ""; if (flag) { request.getSession().setAttribute("username", bean.getUsername()); msg = SUCCESS; } else { request.getSession().removeAttribute("username"); msg = ERROR; } try { String base_Path = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; response.sendRedirect(base_Path + "/index.jsp"); } catch (IOException e) { System.out.println(e.getMessage()); } return msg; } } 前面页面干干净净,直接提交 <form id="form1" class="form-signin" action="<%=basePath%>login/check.do"> <h2 class="form-signin-heading"><img src="img/log.png" height="50px" />脱机批处理控制台</h2> <input id="username" name="username" type="text" class="form-control" placeholder="用户名" required autofocus> <input id="password" name="password" type="password" class="form-control" placeholder="密码" required> <div class="checkbox"></div> <button id="tb01" class="btn btn-lg btn-primary btn-block" type="submit">登录</button> </form>
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
我在GOOGLE里单步调试走了一下,发现一个问题,一步一步走没有问题,但是通过跳断点就不行,估计是响应时间问题,或者说我写的ajax不是阻塞式的,即没有等到响应,程序就执行过了。
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
最新消息,代码还是我最上面贴的代码,我刚才在GOOGLE浏览器,通过单步调试的方法,看代码问题,程序就过了,但是退出调试模式,又不行了!好诡异!
Defonds 2014-10-15
  • 打赏
  • 举报
回复
后台收到请求信息了没
tuzuxiao 2014-10-15
  • 打赏
  • 举报
回复
我用都可以啊,不知道楼主是什么原因!
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 2 楼 EverWHL 的回复:
话说现在还用JQ1.1的吗 楼主换个版本吧 试试1.6吧 而且楼主IE是什么版本,火狐和谷歌是不是稍微新点,ie版本稍低
IE我用的是IE10,,google版本 36.0.1985.125 m,firefox版本是:32.0.3,都是很新的版本! 我目前还有1.8.3版本,测试了,不行!一会再试一下其它jquery版本
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 3 楼 qq727013465 的回复:
data : { username : v_name, password : v_passwd, ran : Math.random() }, ajax请求。加个随机码 试试(有可能地址相同。ajax没相应)
加了之后,后台收到消息: 2014-10-15 12:15:58,723 INFO LoginAction (LoginAction.java:37) - {"ran":"0.5195198517758399","username":"admin","password":"admin"} 但是还是和以前一样!
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 1 楼 xujianping32 的回复:
<%=basePath%> 这么写取得到路径?
<% String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ request.getContextPath() + "/"; %>
悲鸣秋 2014-10-15
  • 打赏
  • 举报
回复
data : { username : v_name, password : v_passwd, ran : Math.random() }, ajax请求。加个随机码 试试(有可能地址相同。ajax没相应)
EverWHL 2014-10-15
  • 打赏
  • 举报
回复
话说现在还用JQ1.1的吗 楼主换个版本吧 试试1.6吧 而且楼主IE是什么版本,火狐和谷歌是不是稍微新点,ie版本稍低
xujianping32 2014-10-15
  • 打赏
  • 举报
回复
<%=basePath%> 这么写取得到路径?
你好毒你好毒 2014-10-15
  • 打赏
  • 举报
回复
引用 25 楼 aptweasel 的回复:
[quote=引用 24 楼 MrsFeng 的回复:] 把你的代码copy的重新做了一份工程,完全没有LZ说的这种情况。表示很悲伤
那就是我人品问题了! 敢问你用的啥浏览器? 按最原始的代码,我只有IE好用。[/quote] 我各个浏览器都试过了,没什么问题IE、CHROM、FIREFOX
EverWHL 2014-10-15
  • 打赏
  • 举报
回复
还真是蛋疼 好吧,现在什么情况?到主页之后又跳到登录吗? “结果就是:IE,FIREFOX是先跳到主页然后又跳出来了,而google根本就没有跳进去!” 是不是走了什么过滤器吧,然后又导致跳到登录了
shixitong 2014-10-15
  • 打赏
  • 举报
回复
<html>
<head>
    <title></title>
    <script  src="../uploadify/jquery-1.7.1.min.js"></script>
    <script>
        window.onload=function(){
            $("#mybutton").click(function(){

                alert("点我干嘛");
            });
        }

    </script>
</head>
<body>
<input id="mybutton" type="button" value="提交"/>
</body>
</html>
绝对是可以到的,$("#tb01").click(function() 这边只是给这个按钮增加绑定时间,触发还是你点击这个按钮
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 23 楼 shixitong 的回复:
[quote=引用 22 楼 aptweasel 的回复:] [quote=引用 20 楼 shixitong 的回复:] 把$(document).ready(function() {换为js中的window.onload函数看看
敢问我的按钮事件怎么加进去? $("#tb01").click(function() 给个例子?[/quote] 敢问大哥,有没有试过?[/quote] 试过了,调不到$("#tb01").click(function() 方法 我改成下面这种写法 <button id="tb01" class="btn btn-lg btn-primary btn-block" type="submit" onClick="on_submit()">登录</button> 调用事件: function on_submit(){ var v_name = $.trim($("#username")[0].value); var v_passwd = $.trim($("#password")[0].value); if (v_name == "") { alert("请输入用户名!"); } else if (v_passwd == "") { alert("请输入密码!"); } else { $.ajax({ url : "<%=basePath%>login/check.do", type : 'post', data : { "username" : v_name, "password" : v_passwd }, dataType : 'json', async:false, success : function(data) { //alert(JSON.stringify(data)); window.location.href = "<%=basePath%>index.jsp"; } }); } } 没有任何改观!
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 24 楼 MrsFeng 的回复:
把你的代码copy的重新做了一份工程,完全没有LZ说的这种情况。表示很悲伤
那就是我人品问题了! 敢问你用的啥浏览器? 按最原始的代码,我只有IE好用。
你好毒你好毒 2014-10-15
  • 打赏
  • 举报
回复
把你的代码copy的重新做了一份工程,完全没有LZ说的这种情况。表示很悲伤
shixitong 2014-10-15
  • 打赏
  • 举报
回复
引用 22 楼 aptweasel 的回复:
[quote=引用 20 楼 shixitong 的回复:] 把$(document).ready(function() {换为js中的window.onload函数看看
敢问我的按钮事件怎么加进去? $("#tb01").click(function() 给个例子?[/quote] 敢问大哥,有没有试过?
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 20 楼 shixitong 的回复:
把$(document).ready(function() {换为js中的window.onload函数看看
敢问我的按钮事件怎么加进去? $("#tb01").click(function() 给个例子?
aptweasel 2014-10-15
  • 打赏
  • 举报
回复
引用 18 楼 getdate 的回复:
在主页中加个断点跟踪下吧。
单步走的话,FIREFOX能进主页,进去以后就结束了(不知道为什么正常执行时就跳出来了),google没有进入主页,IE没有安装调试工具,后台日志显示,进入过主页又跳出来了。 结果就是:IE,FIREFOX是先跳到主页然后又跳出来了,而google根本就没有跳进去!
加载更多回复(10)
什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表展示每个页面模块;要调试javascript 给页面增加一些更活泼的要素;要使用Ajax给用户带来更好的体验。一个优秀的WEB开发人员需要顾及更多层面,才能交出一份同样优秀的作业。为帮助广大正处于Web2.0洪流中的开发人员,在这里为大家介绍一款轻巧灵活的辅助开发工具。 Firebug是Firefox下的一款开发类插件,现属于Firefox 的 五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和 Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。这是一款让 人爱不释手的插件,如果你以前没有接触过它,也许在阅读本文之后,会有一试的欲望。笔者在撰写此文的时候,正逢Firebug发布1.0正式版,这不能不 说是种巧合。 应用 Firebug插件虽然功能强大,但是它已经和Firefox浏览器无缝地结合在一起,使用简单直观。如果你担心它会占用太多的系统资源,也可以方便地启用/关闭这个插件,甚至针对特定的站点开启这个插件。 在安装好插件之后,先用Firefox浏览器打开需要测试的页面,然后点击右下方的绿色按钮或使用快捷键F12唤出Firebug插件,它会将当前页面成上下两个框架,如图1所示。 图1:Firebug插件展开图示 从图1中看到,Firebug有6个主要的Tab按钮,下文将主要介绍介绍这几方面的功能。 Console HTML CSS Script Dom Net 控制台 Html查看器 Css查看器 脚本条时期 Dom查看器 网络状况监视 Console 控制台 控制台能够显示当前页面中的javascript错误以及警告,并提示出错的文件和行号,方便调试,这些错误提示比起浏览器本身提供的错误提示更加 详细且具有参考价值。而且在调试Ajax应用的时候也是特别有用,你能够在控制台里看到每一个XMLHttpRequests请求post出去的参数、 URL,http头以及回馈的内容,原本似乎在幕后黑匣子里运作的程序被清清楚楚地展示在你面前。 象C shell或Python shell一样,你还能在控制台中查看变量内容,直接运行javascript语句,就算是大段的javascript程序也能够正确运行并拿到运行期的信息。

81,122

社区成员

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

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