我在控制器中有一个方法,它将根据请求的内容返回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