我在控制器中有一個方法,它將根據請求的內容返回HTML或JSON。下面是這種方法的一個簡化例子,我在this question發現如何做到這一點的信息後建模:如何使用Spring MVC和多種響應類型支持JSONP
@RequestMapping(value="callback")
public ModelAndView callback(@RequestParam("c") String c) {
Map response = new HashMap<String, String>();
response.put("foo", "bar");
return new ModelAndView("fake", "data", new JSONPObject(c, response));
}
我把JSONPObject到模型,因爲我要爲了能夠達到它從呈現如果HTML被請求的視圖。但是,這帶來了,當我渲染JSON有一個回調的一個問題:正如你所看到的,因爲我把我的數據在模型中的「數據」插槽,當模型被渲染爲JSON有
curl 'http://localhost:8080/notes/callback.json?c=call'
{"data"call(:{"foo":"bar"})}
那額外的包裝。我正在尋找的是呈現JSON(技術上JSONP)看起來像這樣:
call({"data":{"foo":"bar"}})
任何人都可以看到一個辦法讓在那裏我試圖去不破壞返回訪問視圖的能力渲染過程中的JSONPObject?
我很困惑。 extractValueFromSingleKeyModel與jsonp沒有任何關係,如果我理解正確,它需要響應正文中的函數調用。這個函數名通常傳遞給查詢字符串上的服務器(例如callback = foo)。 – 2012-12-14 02:51:34