2015-09-04 2 views
3

У меня есть веб-приложение Angularjs, размещенное на сайте www.foo.com и его веб-api по адресу www.api.foo.com. Я включил CORS на стороне сервера. Все работает хорошо. Но заголовок CORS Access-Control-Allow-Origin становится лишенным корпоративных корпоративных сетей (такие брандмауэры, как Watchdog, делают это по умолчанию link). Мой сайт - это общедоступный сайт. Любые предложения по решению этой проблемы. Повсюду предлагается JSONP, но мне также нужно будет делать сообщения.Проблемы с брандмауэром CORS

ответ

1

Вы можете избежать прямого вызова api.foo.com из углового и вместо этого использовать foo.com в качестве прокси-сервера для api.foo.com. Это известный метод, чтобы вы могли найти информацию в Интернете. Недостатком является то, что вам нужно позаботиться о двух запросах, обычном ajax-запросе на внешнем сервере и сервере-сервере (foo.com -> api.foo.com).

Поскольку у вас есть Угловое приложение, вам также необходимо исключить часть URL-адреса из SPA. Что-то вроде foo.com/api/* не может быть перенаправлено на index.html, где приложение инициализируется. В противном случае все ваши запросы потерпят неудачу.

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