2014-11-23 110 views
0

當我提交表單時,我有一個包含兩個文本框的用戶名和密碼的表單,我的小服務程序是
成功調用並正確發送響應。但在提交方法失敗正在被調用。失敗函數即使在獲得服務器響應後也得到回調

這是我的代碼。

        form.submit({ 
                success: function(form, action) { 
                 console.log(action); 
                 alert("Success"); 
                }, 
                failure: function(form, action) { 
                 console.log(action); 
                 alert("fail"); 
                } 

               }); 

我的Servlet代碼。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
response.setContentType("text/html"); 
PrintWriter out=response.getWriter(); 
JSONObject obj=new JSONObject(); 
try { 
    obj.put("sucess",true); 
    out.print(obj.toString()); 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

} 

但是,如果我用Ext.Ajax成功函數取代form.submit成功調用。

Ext.Ajax.request({ 
                url:"login", 
                success: function(result, request) { 
                 alert("success"); 
                 }, 
                 failure:function(response){ 
                  alert("failure"); 
                 console.log(response); 
                 } 
                }); 

爲什麼form.submit無法正常工作?

注意:我沒有在服務器端進行任何身份驗證,我的意圖是檢查我是否能夠從服務器獲取json響應,對於Ext.Ajax.Request,我不發送參數。

回答

0

發現問題

我從末做了一個錯誤,在去之前我的問題,我只是想解釋一些東西 form.submit(成功,失敗)將在服務器上工作json響應是成功的關鍵,但Ajax.request使用請求的響應代碼而不是成功:true/false來確定調用哪個處理程序。

在下面的代碼,同時建立JSON對象我在成功

try { 
obj.put("sucess",true); 
out.print(obj.toString()); 
} 

了一個拼寫錯誤的糾正form.submit到sucess成功我成功的功能是越來越成功調用後。

0

嘗試檢查什麼類型的錯誤,讓您在如何解決像一些方向:

failure: function(form, action) { 
    switch (action.failureType) { 
     case Ext.form.action.Action.CLIENT_INVALID: 
      Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values'); 
      break; 
     case Ext.form.action.Action.CONNECT_FAILURE: 
      Ext.Msg.alert('Failure', 'Ajax communication failed'); 
      break; 
     case Ext.form.action.Action.SERVER_INVALID: 
      Ext.Msg.alert('Failure', action.result.msg); 
    } 
} 
+0

是得到相同的格式,因爲我說它工作正常ext.ajax請求 – 2014-11-24 14:49:41

+0

對不起 - 意味着做一個評論,而不是一個答案 - 你不會碰巧具有配置與standardSubmit的形式:真正配置?否則,可能會解析並在發回的操作對象中找到響應 - 更新我的答案並提供有關如何執行此操作的詳細信息。 – 2014-11-24 19:20:40

相關問題