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 가 항상 뜨 는 이 유 를 분석 하 는 것 입 니 다.이러한 문 제 를 해결 하 는 데 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기