Разрешить междоменные сценарии в веб-приложении mvc

У меня есть веб-приложение, и я использую Spring MVC. Мне нужно разрешить междоменные сценарии (мне нужно, чтобы к веб-службе, которую я экстернализую, можно было получить доступ с помощью javascript). Я написал crossdomain.xml и поместил его в папку WEB-INF. Это мой crossdomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

Я поискал и увидел, что crossdomain.xml должен быть доступен по этому URL-адресу: "localhost:8080/crossdomain.xml"
дело в том, что mvc перенаправляет запрос на главный контроллер (с аннотацией RequestMapping "/"). Как я могу преодолеть это с помощью Spring MVC?
Спасибо.


person Mr T.    schedule 07.07.2012    source источник


Ответы (2)


crossdomain.xml используется только флэш-памятью, так что, вероятно, это не то, что вам действительно нужно.

Если вы хотите, чтобы междоменные запросы xhr выполнялись с помощью javascript, вы должны использовать CORS или JSONP, см. этот похожий вопрос

Пример КОРС:

access-control-allow-origin: http://api.example.com
access-control-allow-credentials: true

Пример JSONP (с jQuery, требуется поддержка на стороне сервера):

$.ajax({
    type: "GET",
    url: "https://domain.com/jsonp-service",
    dataType: "JSONP"
});
person Razor    schedule 07.07.2012
comment
Спасибо за ответ. Когда я использую dataType: JSONP, jquery ajax возвращает ошибку. то же самое происходит, когда я пишу json. Дело в том, что я использую JAX-RS (трикотаж) для экстернализации службы, и я читал, что в jax-rs нет поддержки jsonp, поэтому я искал фильтр, но не нашел работающего :) есть предложения? - person Mr T.; 08.07.2012
comment
Я нашел решение. Существует особая интеграция между пружиной и трикотажем. после реализации это сработало. (в конце я использовал JSONP). большое спасибо. - person Mr T.; 20.07.2012

Существует особая интеграция между реализацией jax rs jersey и spring. все описано в этом блоге интеграция Jersey Spring

person Mr T.    schedule 20.07.2012