簡體   English   中英

如何使用Jquery AJAX調用Spring控制器方法

[英]How do I call a Spring controller method with Jquery AJAX

我有以下Spring Controller

@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");
    }
});

請幫我弄清楚為什么即使在單擊按鈕時調用ajax方法也沒有調用Spring方法。 我已經使用firebug逐步完成了腳本,它肯定會觸及ajax函數。

首先,嘗試查看在瀏覽器中手動點擊URL時會發生什么

如果成功,請打開firebug中的請求跟蹤,看看firefox是否實際點擊了URL(以及響應的內容)

嘗試將此添加到您的jquery

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

你會看到是否發生錯誤

你在web.xml中使用哪種模式? 搜索標簽並查看您使用的模式。

例如,如果您使用:

<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");
    }
});

是否可能發生服務器端異常,這就是您沒有看到響應的原因。 如果您有調試,請確保拋出異常和/或您有相同的日志。

你的評論也有點含糊不清是什么意思,即使ajax methid被調用,spring methid也沒有被調用。 你能澄清一下嗎? 另外,如果firebug發出錯誤是什么錯誤,那么使用屏幕截圖或seomthing也可以幫助調用firebug o / p。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM