2016-07-09 2 views
0

Я написал приложение MAVEN для загрузки весны, которое запускается на встроенном сервере tomcat (порт: 8080). У меня есть еще один узел JS express, работающий на порту 8000. Теперь, с порта 8000, я проксировал порт 8080. Таким образом, любой адрес «http://localhost:8080/ *» приведет меня к коду в приложении весенней загрузки. Я тестирую это, сохраняя точку останова в требуемом месте в приложении весеннего загрузки.XMLHttpRequest не может загрузить

Но, после того, как код в ботинке ярового выполняются, я получаю

XMLHttpRequest cannot load http://localhost:8080/users/?_=1468052674994. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. 

«/ пользователей /» мое отображение запроса в приложении весны загрузки.

Я только узнал, что я должен «ЭКСПОЗИЦИЮ» порт 8080 на хост. https://www.wouterdanes.net/2014/04/11/continuous-integration-using-docker-maven-and-jenkins.html В приведенной выше статье говорится, что докер может это сделать. Я не очень понял, чтобы начать с этого. Может кто-нибудь, пожалуйста, помогите мне.

ответ

1

XMLHttpRequest используется браузерами для создания запросов Ajax. Во избежание злоупотреблений браузеры используют политику «того же происхождения», чтобы предотвратить загрузку ресурсов из разных мест в качестве страницы, которая вызывает запрос. Тот же IP-адрес, но с разными портами, как и в вашем случае, также рассматривается как «разные местоположения».

Вы можете решить эту проблему, используя специальные заголовки на странице, загружающей запрос. Это может показаться очень сложным, но его это понятно объяснено на

Same-origin_policy и Cross-origin_resource_sharing

Решение

Первый ответ, со страницей, которая будет делать XMLHttpRequest, должен включать в себя заголовок:

Access-Control-Allow-Origin: http://localhost:8080

0

Весной Rest API пришел мне на помощь. @CrossOrigin (origins = "http://localhost:8000") аннотация для контроллера разрешила проблему. Этот код повторяется во всех контроллерах. Все еще находить эффективное решение.

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