[英].getJSON 404 Error with ModelAndView
我正在嘗試通過調用控制器來檢索我的JavaScript中的一些JSON數據。 控制器返回MappingJacksonJsonView ModelandView,但是.getJSON始終在... / handhygiene.json中報告404。
我從控制器返回ModelandView的方式是否存在問題?
控制者
@RequestMapping(value = "/{room}/handhygiene.json", method = RequestMethod.GET)
public ModelAndView getHandHygienePageAsync(
@PathVariable(value = "room") String roomCode) {
ModelAndView mav = new ModelAndView(new MappingJacksonJsonView());
mav.getModelMap().addAttribute(blahblahblah); //adds some attributes
...
return mav;
}
Java腳本
var currentURL = window.location;
$.getJSON(currentURL + ".json",
function(data) {
... //does stuff with data
}
如果試圖從Ajax請求中僅獲取JSON對象,則需要在方法中添加@ResponseBody
,並使結果對象作為方法的返回值。
@ResponseBody告訴Spring他需要序列化您的對象以將其作為內容類型返回給客戶端。 默認情況下,Spring使用JSON序列化。 ModelAndView將嘗試返回.JSP頁面。 也許您的資源上沒有此jsp頁面,所以服務器返回404錯誤。
我認為這段代碼應該適合您:
@RequestMapping(value = "/{room}/handhygiene.json", method = RequestMethod.GET)
public @ResponseBody Room getHandHygienePageAsync(@PathVariable(value = "room") String roomCode) {
Room room = myService.findRoomByRoomCode(roomCode);
return room;
}
我假設您使用Room作為結果對象,但是它可能是另一個對象或ArrayList。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.