2014-01-15 80 views
0

有很多關於這個的話題,但是他們沒有任何幫助。 一切工作正常,數據被插入到數據庫中,並且(我使用spring mvc作爲後端),我的控制器也正確處理所有事情。Ajax返回狀態碼200,成功功能不觸發

Ajax-code;

$.ajax({ 
       type: "POST", 
       url: "http://localhost:8080/NotePath/register", 
       data: "email=" + email + "&password=" + password + "&name=" + name, 
       succes: function(response){ 
        $("#formMail, #formPass, #formUsername").val(""); 
        $("#loginRegister, #whiteBg").fadeOut(); 
       }, 
       error: function(xhr,err){ 
        alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status); 
        alert("responseText: "+xhr.responseText); 
       } 
}); 

控制器代碼;

@RequestMapping(value = "/register") 
public @ResponseBody String registerUser(@RequestParam(value = "email") String email, @RequestParam(value ="password") String password, 
     @RequestParam(value = "name") String name, Model model){ 

    String status = ""; 

    Boolean isEmailTaken = registerServiceImpl.isEmailTaken(email); 
    Boolean isNameTaken = registerServiceImpl.isNameTaken(name); 

    if(isEmailTaken == false && isNameTaken == false){ 
     try { 
      registerServiceImpl.registerUser(email, password, name); 
      status = "Succes"; 
     } catch (Exception e) { 
      status = "Error"; 
      e.printStackTrace(); 
     } 
    }else if(isEmailTaken == true){ 

     status = "mail taken"; 

    }else if(isNameTaken == true){ 

     status = "name taken"; 

    } 

    return status; 

} 

我甚至試過返回responseEntity;

return new ResponseEntity<String>(status, respHeader, HttpStatus.OK); 

當我看着我的響應頭(使用谷歌Chrome瀏覽器)甚至說:「郵件採取」或「名義採取」或什麼信息應該出現的。但由於某種原因,阿賈克斯成功功能沒有被觸發...

奇怪的是,我有其他的Ajax調用沒有任何問題的工作。

我想獲得的200狀態碼意味着一切......嗯.... OK:P

+3

'success'不'succes' ... –

+0

'更迭:功能(響應){'應該是'成功:函數(響應){'。所以基本上,你沒有正確註冊回調。 – melihcelik

+0

我的天啊......我一直堅持了4個小時。 Thnx傢伙! – Jack

回答

1

你沒有正確註冊回調。

succes: function(response){應該success: function(response) {

+0

成功是用我的母語寫成'succes',這可能是我爲什麼在我的生活中看不到它。太糟糕了,跛腳downvote。感謝一羣人! – Jack

相關問題