2011-02-05 52 views
3

我有以下的春天控制器如何調用一個春天控制器的方法使用jQuery AJAX

@Controller 
@RequestMapping("/accreq") 

與以下映射

@RequestMapping(value = "/defRoles", method=RequestMethod.GET) 
public @ResponseBody String loadDefaultRoles(
    @RequestParam(value="idGroup", required=false) String groupID 
    throws ServletException{ 

我試圖調用此方法具有以下的jQuery ajax

$.ajax({ 
type: 'GET', 
url: '/accreq/defRoles', 
data: {idGroup: $('#infoGroup').val() }, 
success: function() { 
    alert("success"); 
    } 
}); 

請幫我弄清楚爲什麼Spring方法不會被調用,即使你gh ajax方法在我點擊一個按鈕時被調用。我已經通過腳本與螢火蟲,它絕對碰到ajax功能。

+0

firebug還應該顯示完整的ajax請求,確保它打到你打算的完整網址。 – jondavidjohn

回答

4

首先,嘗試看看,如果你手工打網址在瀏覽器

如果是成功的,在Firebug打開請求跟蹤,看看Firefox的實際命中URL(和響應所說的話)會發生什麼

1

嘗試添加到您的jQuery

error: function(jqXHR, textStatus, errorThrown) { 
    alert("error:" + textStatus + " exception:" + errorThrown); 
    } 
} 

,如果你在你的web.xml中使用該模式時發生錯誤

1

,你會看到什麼?搜索標籤並查看您使用的是哪種模式。

例如,如果您使用的是:

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

你應該使用這樣的事情:

$.ajax({ 
type: 'GET', 
url: '/accreq/defRoles.html', 
data: {idGroup: $('#infoGroup').val() }, 
success: function() { 
    alert("success"); 
    } 
}); 
+0

該模式是正確的。我在其他URI中使用相同的。 – coder

0

是否有可能存在發生的服務器端異常,這就是爲什麼你沒有看到迴應。如果您已經調試過,請確保您的異常被拋出,並且/或者您的日誌相同。

此外,你的評論是有點含糊不清你的意思是即使阿賈克斯方法被稱爲春天的方法沒有被稱爲。你能澄清一下嗎?此外,這將有助於螢火蟲o/p的電話截圖或seomthing ..也如果螢火蟲拋出一個錯誤是什麼錯誤。

相關問題