2015-01-12 1 views
0

Я создал приложение весны, и я также использую webservices.@Produces ({"application/x-javascript"}) не работает весной mvc версия 4.0.5.RELEASE

Я хочу использовать функцию обратного вызова 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: применение/JSON, кодировка = UTF-8

Оно должно быть: Content-Type: применение/JavaScript; кодировка = UTF-8

ответ

2

Я думаю, что вы смешиваете Джерси @Produces и JSONWithPadding с Spring MVC, и @Produces-Джерси не будет принимать никакого эффекта там.

Если вы ищете способ реализации JSON-P только с Spring MVC, взгляните на

http://patrickgrimard.com/2010/07/28/tutorial-implementing-a-servlet-filter-for-jsonp-callback-with-springs-delegatingfilterproxy/

или если вы можете обновить его до версии 4.1 или выше

http://spring.io/blog/2014/07/28/spring-framework-4-1-spring-mvc-improvements

0

Вы используете Spring версии старше 3.1.1.RELEASE. Если вы хотите установить ваш ответ в типе носителя, он должен быть в RequestMapping аннотации, как это:

@RequestMapping(value = "/list/rideLogs/{rideId}", method = RequestMethod.POST, 
     produces = YOUR_MEDIA_TYPE) 

Это сказанное приложение/JavaScript не является допустимым типом носителя для весны. Вы можете ссылаться на значения класса MediaType.

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/MediaType.html

+0

ее не работает его producing..text/HTML тип – user2768984

+0

он должен работать с предопределенными типами медиа в классе MediaType – erginm

Смежные вопросы