用ajax返回验证的时候总是弹出error原因

2014-11-24 01:25:11 · 作者: · 浏览: 1

发一个简单案例:

前台:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  
      用户登录
      <script type="text/java script" src="../js/jquery-easyui-1.3.5/jquery.min.js">
      <script type="text/java script" src="../js/jquery-easyui-1.3.5/jquery.easyui.min.js">
	  
  
	  
  
	  <script type="text/java script" src="../js/jquery-easyui-1.3.5/locale/easyui-lang-zh_CN.js">
	  
  
	  <script type = "text/java script" 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=eva l("("+data+")");
                             alert("进来了");
                          },
                         error:function(){
                             alert("失败");
                          }   
                         
                      });
	  	      	       //alert(data)
	  	      	  }
	  	      }]
	  	  });
	  });
	   
  
  
  		
  
用户名 :
密码:

后台:

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显示的信息是:

\

\