@产生的({quot;应用程序/x-javascript})在SpringMVC4.0.5.0版本中不起作用

@产生的({quot;应用程序/x-javascript})在SpringMVC4.0.5.0版本中不起作用,javascript,json,rest,spring-mvc,spring-annotations,Javascript,Json,Rest,Spring Mvc,Spring Annotations,我已经创建了一个spring应用程序,我也在使用webservices 我想使用jsonp回调函数,其媒体类型应为{“application/x-javascript”}。这似乎不起作用。它返回的是json对象,而不是javascript。 这是密码 @RequestMapping(value = "widget", method = RequestMethod.GET) @Produces({"application/x-javascript"}) public @ResponseBo

我已经创建了一个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);
    }
我使用rest客户端进行了检查

它说内容类型是:content-type:application/json;字符集=UTF-8


它必须是:内容类型:application/javascript;charset=UTF-8

我认为你把Jersey's和Spring MVC混为一谈,Jersey's@products在那里不会起任何作用

如果您正在寻找一种只使用SpringMVC实现JSON-p的方法,请看

或者如果您能够升级到4.1或更高版本


您使用的是早于3.1.1.0版本的Spring版本。如果您希望设置响应的媒体类型,它应该位于RequestMapping注释中,如下所示:

    @RequestMapping(value = "/list/rideLogs/{rideId}", method = RequestMethod.POST, 
         produces = YOUR_MEDIA_TYPE)
也就是说,application/javascript不是Spring的有效媒体类型。您可以引用MediaType类的值


它应该与MediaType类中预定义的媒体类型一起使用