Показать сообщение отдельно
  #1 (permalink)  
Старый 30.06.2017, 08:53
Новичок на форуме
Отправить личное сообщение для uranplanet Посмотреть профиль Найти все сообщения от uranplanet
 
Регистрация: 30.06.2017
Сообщений: 1

Ошибка CORS работы с веб-сервисом
Настраиваем интеграцию между AMOCRM и 1С.

Работает она так: в AMOCRM есть типовой бесплатный виджет по выставлению счета в 1С,
виджет вызывает веб-приложение, веб-приложение работает с веб-сервисом 1С.

1С арендована в облаке SCloud.

Веб-приложение разместили на другом сервере с другим доменом. Веб-приложение (которое раньше было размещено на том же домене, что и веб-сервис) раньше работало.

При разноске на разные домены, запросы стали кросс-доменными – работать перестало. Валилось с ошибкой авторизации.
Я добавил после строки var req = new XMLHttpRequest(); строку req.withCredentials = true;
- и при обращении к веб-сервису выскочил запрос на пользователя и пароль.
Указал - первый запрос GET к веб-сервису перестал ругаться на авторизацию и начал выводить сообщение "Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://web01.scloud.ru/sc42237_base01/ws/amocrm. (Причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin')".

Позвонил в тех.поддержку SCloud и попросил их настроить в IIS веб-сервер так, чтобы он отдавал заголовки 'Access-Control-Allow-Origin', 'Access-Control-Allow-Headers', 'Access-Control-Allow-Methods', 'Access-Control-Allow-Credentials'.

Появились заголовки - GET начал проходить на ура. Но следующим идет запрос POST и он валится с ошибкой авторизации и сообщением "Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://web01.scloud.ru/sc42237_base01/ws/amocrm. (Причина: неудача канала CORS preflight)."

Может кто-то сталкивался с подобной проблемой?
Ответить с цитированием