Если у меня есть веб-приложение, подключающееся к удаленному серверу Active MQ, как я могу разрешить CORS разрешать междоменную связь?Как я могу использовать сервлет ActiveMQ AJAX с CORS?
ответ
Мне потребовалось некоторое время, чтобы разобраться, и это не очевидно, поэтому я буду документировать изменения здесь. Это было сделано с помощью ActiveMQ 5.10.
Сначала вам понадобится фильтр CORS, чтобы добавить соответствующие заголовки в ответы. Я попытался использовать встроенный фильтр Jetty cors (http://wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter), но у меня такое ощущение, что он не отвечал на запросы POST предполетного OPTION правильно. Тем не менее, была вторая проблема, которая мешала моим соединениям CORS, поэтому не забудьте, что фильтр Jetty CORS не работает (я отказался от него и не пробовал снова).
Вместо этого я использовал фильтр по адресу http://software.dzhuvinov.com/cors-filter.html. Обратите внимание, что версия 2.2.1 этой библиотеки не работает (она дублирует заголовки, такие как Access-Control-Allow-Origin, что недопустимо), однако небольшое исправление (замена addHeader с помощью setHeader) - все, что нужно, чтобы заставить его работать , См. https://github.com/AutoGeneral/cors-filter для фиксированного кода.
Теперь вам необходимо обновить amq_jquery_adapter.js файл, чтобы включить xhrFields withCredentials поле (см CORS request - why are the cookies not sent?). Таким образом, код выглядит следующим образом:
ajax: function(uri, options) {
request = {
url: uri,
data: options.data,
success: options.success || function(){},
error: options.error || function(){},
xhrFields: {
withCredentials: true
}
}
Так, с CORS фильтром и обновленные параметры запроса Ajax Jquery, вы будете иметь возможность сделать CORS запросы к сервлет AJAX.
Кажется, что этот способ настройки withCredentals не работает для меня. Я использовал сервлеты CORS для причалов и установил withCredentials таким образом, только тогда он начал работать: xhr.withCredentials = true;
А на стороне сервера в web.xml:
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter- class>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET,POST,HEAD,OPTIONS</param-value>
</init-param>
<init-param>
<param-name>allowedHeaders</param-name>
<param-value>X-Requested-With,Content-Type,Accept,Origin</param-value>
</init-param>
<init-param>
<param-name>allowedCredentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 1. Как я могу тестировать сервлет?
- 2. protobuf и .net - как я могу использовать сгенерированный файл .cs?
- 3. Как я могу сохранять сообщения ActiveMQ?
- 4. JRun working ... как я могу использовать сервлет на сервере jrun
- 5. Как использовать брандмауэр с ActiveMQ?
- 6. Как использовать PooledConnectionFactoryBean с ActiveMQ
- 7. Как правильно использовать ActiveMQ
- 8. Как использовать ActiveMQ в Meteor?
- 9. Как использовать сервлет с osgi
- 10. ActiveMQ TransportListener как использовать
- 11. Встроенный брокер ActiveMQ, доступный через сервлет Weblogic
- 12. Как я могу скачать файлы .cs с сайта?
- 13. Могу ли я использовать MongoDB для архитектуры ActiveMQ Master/Slave?
- 14. Как я могу протестировать поток с ActiveMq в локальном
- 15. Сервлет AJAX с базой данных
- 16. как я могу использовать сообщение и файлы с ajax?
- 17. Как я могу использовать выход php-файла с Ajax?
- 18. Как я могу использовать данные, возвращаемые с Ajax?
- 19. как я могу использовать JQuery Ajax с PHP JSON
- 20. Как я могу использовать ajax с google map api?
- 21. Как я могу использовать вызов ajax с помощью backbone.js
- 22. Activemq я могу установить правильность в очередь
- 23. Как использовать log4j2 JMSAppender с ActiveMQ
- 24. Как я могу запустить сервлет без взаимодействия с пользователем
- 25. Как я могу отправить изображение с текстом в сервлет?
- 26. Как использовать MaxReconnectAttemps в ActiveMQ
- 27. Могу ли я использовать параметры типа сервлета в Ajax
- 28. Обратный Ajax + JSP-сервлет
- 29. asp.net + ajax Как я могу
- 30. Как использовать сообщения ActiveMQ Blob?