主页 > 知识库 > 解决ajax返回验证的时候总是弹出error错误的方法

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

热门标签:科大讯飞语音识别系统 银行业务 Linux服务器 团购网站 电子围栏 阿里云 服务器配置 Mysql连接数设置

发一个简单案例:
前台:

%@ 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的原因,希望对大家解决此类问题有所帮助。

您可能感兴趣的文章:
  • 详解ajax的data参数错误导致页面崩溃
  • 快速解决ajax请求出错状态码为0的问题
  • PHP 中使用ajax时一些常见错误总结整理
  • 完美解决ajax跨域请求下parsererror的错误
  • ajax跨域访问报错501的解决方法
  • jQuery中ajax错误调试分析
  • Ajax向后台传json格式的数据出现415错误的原因分析及解决方法
  • Ajax犯的错误处理方法
  • js ajaxfileupload.js上传报错的解决方法
  • Jquery Ajax Error 调试错误的技巧
  • django使用ajax post数据出现403错误如何解决
  • Ajax报错400的参考解决办法

标签:衡水 蚌埠 萍乡 广元 枣庄 大理 衢州 江苏

巨人网络通讯声明:本文标题《解决ajax返回验证的时候总是弹出error错误的方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266