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

发一个简单案例:
前台:

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

(0)

相关推荐

  • jquery ajax 登录验证实现代码

    使用 jquery 框架:下载 jquery.js 新建一个 web 工程 ajax : 在 webRoot 下新建一个 jslib 文件夹:专门存放 js 文件: 在 webRoot 下新建一个 html/jsp 页面: login.html 复制代码 代码如下: <script type = "text/javascript" src = "jslib/jquery.js"></ script> <script type = &qu

  • Ajax实时验证用户名/邮箱等是否已经存在的代码打包

    今天分享一个"利用Ajax技术来检测用户名是否存在"的例子. 利用Ajax技术来检测用户名是否存在的原理流程图: 最终结果截图: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="

  • Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)

    其中用到了jquery插件来验证用户名哦,这里是利用jquery ajax来验证用户名是否存在哦.大家看看效果图,后面将附上源码下载. jquery框架实现的ajax 验证用户名是否存在的部分JS 复制代码 代码如下: $("#accounts").formValidator({onshow:"请输入用户名",onfocus:"用户名至少4个字符,最多10个字符",oncorrect:"该用户名可以注册"}).inputVal

  • PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)

    前 言 直接上代码有点不厚道.于是按照天朝传统,整段描述吧....(本人语言表达能力有限,大家忍着看) 功 能 在网站注册用户时使用,主要为了无刷新异步验证用户输入的用户名或者Email是否已注册. 这功能大家肯定见过,大多数网站都有的,我一直对这个功能很感兴趣,所以这几天研究了下 jQuery + Ajax 整了一个功能不算完善,但足以应付普通使用的代码 (更牛的功能大家自己去发掘) 文 件 说 明 reg.php //为注册页面 check_user.php //为用户验证页面 (GET,P

  • formvalidator验证插件中有关ajax验证问题

    jquery formvalidator插件是不错的国产验证插件了,做点普通的校验也是很方便的,但最近遇到个问题,发现如果表单整个表单是AJAX提交时,就不能按传统的做法了,比如: 复制代码 代码如下: $ajax.post("...............") $.formValidator.initConfig({formID:"applyForm",onError:function(msg){alert(msg)}}); $("#reason&quo

  • Ajax 表单验证 实现代码

    兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6 效果:一边输入一边实现验证  环境:ruby 1.8.6 + rails 2.1.0 + windows 核心代码: html: 浏览器禁用javascript时显示提示信息: 复制代码 代码如下: <noscript> <div style="color:red">您的浏览器不支持javascript,部分功能无法使用</div> </noscript>

  • Ajax 用户名验证是否存在

    客户端收集表单信息. 使用XMLHttpRequest对象提交到服务器. 服务器完成验证的逻辑,返回结果信息. 浏览器端根据服务器返回的信息对用户做出一定的提示. 不过由于我的空间不支持任何服务器段语言,所以把本应在服务器的逻辑搬到了浏览器,由JavaScript来做,服务器只负责提供一个用户名的列表.最后的效果如下,试着输入test,cainiao8这些用户名,都会显示已注册. JavaScript代码分析 首先,当文档载入完毕的时候,给表格设置change事件的响应函数ajaxValidat

  • 基于jQuery实现的Ajax 验证用户名是否存在的实现代码

    实例: 1.请求页面AJax.aspx HTML代码 复制代码 代码如下: <div> <input id="txtName" type="text" /><input type="button" value="查看用户名是否存在" id="btn" onclick="JudgeUserName();" /> <div id="show

  • asp+Ajax简单客户登陆验证

    服务器端操作方便之处我就不吹了,地球人都知道,它最烦莫过于页面刷新,头都被刷晕了,而且他在刷新的时候,还触发服务器端的事件(解决方案:http://skylaugh.cnblogs.com/archive/2006/06/05/418010.html),现在Ajax的出现,他们的结合是发展的必然! 一.介绍一下Ajax在Asp.Net中的基本使用     1.在工程中引入Ajax.dll文件. Ajax.dll实现XmlHttpRequest请求服务器的实现细节..net项目中,添加上对其的引用

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

    发一个简单案例: 前台: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>用户登录</title>

  • 解决AJAX返回状态200没有调用success的问题

    今天在做个demo的时候,发现ajax获取状态为200,可是却没有执行正确的方法. SpringMVC + ajax +jquery 后来发现SpringMVC利用注解@ResponseBody返回String时,浏览器显示200状态码,并且响应头为json格式,格式ajax不认为它是json,所以一直执行错误方法 后来把dataType="json"去掉就OK了! 以上这篇解决AJAX返回状态200没有调用success的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希

  • 快速解决ajax返回值给外部函数的问题

    如下所示: function validateUser(mya){ var val=mya.name; val = $.trim(val); var flag=true; if(val != ""){ var url1="${pageContext.request.contextPath}/group/getUserCount" var data1= {"gid":val, time:new Date()}; $.post(url,data1,f

  • layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)

    layer 弹出框中经常遇到要弹出表单进行修改数据, 因此在弹出框中的表单需要验证数据, 就需要在弹出一个layer, 默认的设置会自动关闭原来的layer, 解决办法如下: type参数: 0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层) 因此设置type的值, 可以实现弹出两个弹出框:(只有确定按钮的部分代码) yes: function (index, layero) { var tableId=$("#tableId"); var signform

  • Ajax加载外部页面弹出层效果实现方法

    本文实例讲述了Ajax加载外部页面弹出层效果实现方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

  • 解决ios h5 input输入框被输入法弹出一块区域的问题

    问题:如下图 解决方案 scrollIntoView scrollIntoView(alignWithTop) 滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素.如果alignWithTop为true,或者省略它,窗口会尽可能滚动到自身顶部与元素顶部平齐 /** * * 使用方法 输入框中 onclick="sr(this);" onblur="nosr(this)" */ var timer1; function sr(obj) { timer1 =

  • 让JavaScript的Alert弹出框失效的方法禁止弹出警告框

    本文将介绍让JavaScript的Alert弹出框失效的方法,也就是禁止让JS弹出警告框. 因为现在都提倡绿色上网环境,弹出框难免会影响你的心情,所以通过以下代码可将Js弹出框屏蔽掉. <script LANGUAGE="JavaScript"> <!-- window.alert = function(str){ return ; } alert("不能弹出警示框");//--> </script> 实现思路是对"al

  • fckeditor粘贴Word时弹出窗口取消的方法

    本文实例讲述了fckeditor粘贴Word时弹出窗口取消的方法.分享给大家供大家参考.具体方法如下: 用fckeditor作为用户发布的编辑框,允许用户发布Word.默认的情况下,粘取进word时,提示是否清除word样式,选择"是"则弹出一个框,需要再粘贴一次来清除word样式.这个操作很麻烦,因此要取消. 开始找到的方法是把ckeditor/" target="_blank">fckeditoreditorjs下的fckeditorcode_i

  • PHP控制前台弹出对话框的实现方法

    应用场景: 微信授权登录过程中,需要用户确认,故衍生此需求: 相应的逻辑不放在前端的原因是,此部分逻辑属于偏功能业务,所以放在后端,方便统一管理. 解决办法: 通过php echo出javascript脚本,这里需要关注的一点是缓冲区. 缓冲区应该是有三个部分,分别是php.webserver.web browser,可以通过程序代码或配置文件做到实时输出,相对而言后台是可控的,但是前台不同浏览器缓冲机制是不同的,这里没有深入研究.我的解决方案是,允许非实时输出. 允许非实时输出的一个要求是,在

  • 在vue中实现点击选择框阻止弹出层消失的方法

    在vue项目中,选择性别是用的一个弹出层, <div class="sex" v-show="showed" transition='fade' @click="unshow"> <ul @click.stop="stophidden"> <li class="choice">选择</li> <li> <label>男</labe

随机推荐