我创建了一个spring应用程序,我也在使用webservices。
我想使用jsonp回调函数,媒体类型应该是{" application / x-javascript"}。这似乎不起作用。它返回json对象而不是javascript。 这是代码..
@RequestMapping(value = "widget", method = RequestMethod.GET)
@Produces({"application/x-javascript"})
public @ResponseBody JSONWithPadding displayWidgetPage(Model model, HttpServletResponse
response,HttpServletRequest request)
{
String callback = request.getParameter("callback");
PointsInfo pointsInfo =new PointsInfo();
pointsInfo.setUsername("json");
return new JSONWithPadding(pointsInfo,callback);
}
我使用其他客户端检查了......
它说内容类型是:Content-Type:application / json; charset = UTF-8
必须是:Content-Type:application / javascript; charset = UTF-8
答案 0 :(得分:2)
我认为你将Jersey的@Produces和JSONWithPadding与Spring MVC混合在一起,泽西的@Produces将不会对其产生任何影响。
如果您正在寻找仅使用Spring MVC实现JSON-P的方法,请查看
或者如果您能够升级到4.1或更高版本
http://spring.io/blog/2014/07/28/spring-framework-4-1-spring-mvc-improvements
答案 1 :(得分:0)
您使用的是早于3.1.1.RELEASE的Spring版本。如果您要设置响应的媒体类型,它应该在RequestMapping注释中,如下所示:
@RequestMapping(value = "/list/rideLogs/{rideId}", method = RequestMethod.POST,
produces = YOUR_MEDIA_TYPE)
据说应用程序/ javascript不是Spring的有效媒体类型。您可以引用MediaType类的值。
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/MediaType.html