解决ajax返回验证的时候总是弹出error错误的方法

所属分类: 网络编程 / AJAX相关 阅读数: 1523
收藏 0 赞 0 分享

发一个简单案例:
前台:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
   <title>用户登录</title> 
   <script type="text/javascript" src="../js/jquery-easyui-1.3.5/jquery.min.js"></script> 
   <script type="text/javascript" src="../js/jquery-easyui-1.3.5/jquery.easyui.min.js"></script> 
   <link rel="stylesheet" href="../js/jquery-easyui-1.3.5/themes/default/easyui.css" type="text/css"></link> 
   <link rel="stylesheet" href="../js/jquery-easyui-1.3.5/themes/icon.css" type="text/css"></link> 
   <script type="text/javascript" src="../js/jquery-easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script> 
   <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
   <script type = "text/javascript" charset = "UTF-8"> 
   $(function(){ 
     var loginDialog; 
     loginDialog = $('#loginDialog').dialog({ 
       closable : false , // 组件添加属性:让关闭按钮消失 
       //modal : true, //模式化窗口 
       buttons : [{ 
         text:'注册', 
         handler:function(){ 
            
         } 
       }, 
       { 
         text:'登录', 
         handler:function(){ 
            $.ajax({ 
             url:'../servlet/Login_Do', 
             data :{ 
                name:$('#loginForm input[name=name]').val(), 
                password:$('#loginForm input[name=password]').val() 
               }, 
             dataType:'json', 
             success:function(r){ 
              //var dataObj=eval("("+data+")"); 
               alert("进来了"); 
             }, 
             error:function(){ 
               alert("失败"); 
             }   
              
           }); 
            //alert(data) 
         } 
       }] 
     }); 
   }); 
   </script>  
 </head> 
 <body style=”width:100%;height:100%;" > 
    <div id = "loginDialog" title = "用户登录" style = "width:250px;height:250px;" > 
      <form id = "loginForm" method = "post"> 
        <table> 
        <tr> 
          <th>用户名 :</th> 
          <td><input type = "text" class = "easyui-validatebox" data-options="required:true" name = "name"><br></td> 
        </tr> 
        <tr> 
          <th>密码: </th> 
          <td> <input type = "password" class = "easyui-validatebox" data-options="required:true" name = "password"><br></td></td> 
        </tr> 
        </table> 
      </form>  
    </div> 
 </body> 
</html> 

 后台:

public class Login_Do extends HttpServlet { 
  public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
      this.doPost(request, response); 
  } 
  public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    request.setCharacterEncoding("UTF-8");  
    response.setCharacterEncoding("UTF-8"); 
    String name =request.getParameter("name"); 
    String password = request.getParameter("password"); 
    String js = "{\"name\":name,\"password\":password}"; 
    PrintWriter out = response.getWriter(); 
    JSONObject json = new JSONObject(); 
    json.put("name",name); 
    out.print(json.toString()); 
    response.getWriter().write(json.toString()); 
  } 
}

 点击登录时:

解决办法:弹出error信息一般有两种可能:
第一种:url错误,后台直接得不到值
可以用火狐的firebug查看:如果响应了信息,则不是这个问题,那么就有可能是第二种情况
返回数据类型错误:
在我这个例子中,返回的数据无意中打印了两次,这两句删去一句就好了:

out.print(json.toString()); 
response.getWriter().write(json.toString());  

造成了错误。这时在firebug显示的信息是:

以上就是为大家分析的用ajax返回验证的时候总是弹出error的原因,希望对大家解决此类问题有所帮助。

更多精彩内容其他人还在看

理解jquery ajax中的datatype属性选项值

jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery 将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
收藏 0 赞 0 分享

基于Jquery ajax技术实现间隔N秒向某页面传值

这篇文章给大家介绍jquery ajax技术实现每隔一段时间向某页面传值,以及setinterval()方法的语法介绍,对本文感兴趣的朋友可以参考下
收藏 0 赞 0 分享

通过Ajax两种方式讲解Struts2接收数组表单的方法

使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过Ajax两种方式讲解Struts2接收数组表单的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Jquery.history解决ajax的前进后退问题

本文主要给大家介绍基于Jquery.history解决ajax的前进后退问题,涉及到jquery前进后退相关方面的知识,本文内容经典,非常具有参考价值,特此把jquery前进后退相关知识分享在脚本之家网站供大家参考
收藏 0 赞 0 分享

使用HTML5中postMessage知识点解决Ajax中POST跨域问题

这篇文章主要介绍了使用HTML5中postMessage知识点解决Ajax中POST跨域问题的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

谈谈你对aja的理解(一、二)

Ajax是Asynchronous Javascript And XML的缩写,其作用通过Ajax可以使用Javascript语句来调用XMLHttpRequest对象,直接与服务器进行通讯,可以在不重载页面的情况下与服务器交换数据。
收藏 0 赞 0 分享

关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结

最近比较空闲,于是抽个时间整理些关于ajax方法的东东。在项目中经常发现ajax板块好多问题都是属性,方法,事件大小写不区分问题,最终导致了程序运行出现麻烦,下面给大家介绍关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
收藏 0 赞 0 分享

Ajax请求session失效该如何解决

HTML + Servlet + Filter + jQuery 一般来说我们的项目都有登录过滤器,一般请求足以搞定。但是AJAX却是例外的,所以解决方法是设置响应为session失效。
收藏 0 赞 0 分享

编写轻量ajax组件02--浅析AjaxPro

ajaxpro虽然是一个比较老的组件,不过实现思想和源码还是很有借鉴价值的。接下来通过本篇文章给大家介绍编写轻量ajax组件02--浅析AjaxPro,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

编写轻量ajax组件01-与webform平台上的各种实现方式比较

这篇文章主要介绍了编写轻量ajax组件01-与webform平台上的各种实现方式比较,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多