Проблема Access-Control-Allow-Origin Приложение DataPower SharePoint angularjs

Мы работаем в приложении SharePoint. Приложение разработано с использованием AngularJS и развернуто на сайте SAAS нашей компании. Приложение AngularJS использует веб-сервисы, размещенные на сервере приложений. Приложение Angular JS вызывает URL-адрес DataPower (обратный прокси-сервер) для получения данных с сервера приложений (нет связи между приложением Angular JS и сервером приложений). Когда мы вызываем URL-адрес https://company-qa.mycompany.com/path/services/resource мы получаем следующую ошибку,

XMLHttpRequest не может загрузить https://company-qa.mycompany.com/path/services/resource . Ответ на предварительный запрос не проходит проверку управления доступом: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, источник 'https://mycompany.sharepoint.com' не имеет доступа. В ответе был код состояния HTTP 401.

Company-qa.mycompany.com — это URL-адрес Data Power. Нам даны следующие параметры Header Injection в Data Power

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin: https://mycompany.sharepoint.com

На сервере приложений мы также указали выше заголовки. Любая подсказка, что-нибудь нужно сделать в Sharepoint? Или какой-то специальный заголовок должен быть передан из приложения AngularJS?

Любая помощь очень ценится.


person user867662    schedule 13.04.2017    source источник
comment
В ответе был код состояния HTTP 401 — это ответ с ошибкой, означающий, что вы не авторизованы. Многие/большинство веб-серверов не устанавливают заголовок Access-Control-Allow-Origin в ответах об ошибках. Итак, сначала вам нужно выяснить, как получить доступ к этой company-qa.mycompany. com/path/services/resource без получения ответа об ошибке   -  person sideshowbarker    schedule 13.04.2017


Ответы (2)


включить метод параметров в FSH и добавить параметры для соответствия действию в отдельном правиле. затем на вкладке «Дополнительно» MPGW включите обработку сообщений, тело которых пусто. затем в первом правиле запроса для вызова опций отправьте заголовки ответа dp с пропуском обратной стороны. и отправьте эти заголовки Access-Control-Allow-Credentials:true Access-Control-Allow-Origin: https://mycompany.sharepoint.com. не забудьте отправить те же заголовки и в фактический ответ.

person Manoj K    schedule 19.10.2017

Я предполагаю, что вы используете Chrome в Windows. Чтобы отключить фильтр CORS, чтобы вы могли работать только с оставшимися исключениями, сделайте следующее:

Выйти из хрома (убить все экземпляры). Нажмите значок Windows, затем букву R, удерживая клавишу Windows нажатой. Вставьте команду ниже в полученное поле и нажмите Enter.

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

Откроется Chrome с отключенной веб-безопасностью (без фильтра CORS). Убедитесь, что при открытии Chrome отображается предупреждающее сообщение. Запустите свое приложение и дайте мне знать, что вы получаете в качестве исключения.

Кроме того, убедитесь, что ваши учетные данные верны, поскольку HTTP status code 401подразумевает, что вы столкнулись с проблемой аутентификации.

person Felix Too    schedule 13.04.2017