Cors запрос из JS в BPM Online 7.3

Здравствуйте!
При попытке отправить запрос на получение данных (обращение идет по https)
возникает следующая ошибка.

XMLHttpRequest cannot load https://www.crediweb.lv/axis2/services/Info?wsdl. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://softex-iis:8896' is therefore not allowed access.

Как разрешить доступ к другим сайтам?

Нравится

11 комментариев

А где именно в IIS нужно добавить свойство
Access-Control-Allow-Origin?

Добавил со звездочкой.
Появилась ещё одна ошибка.
ошибка 1

Uncaught InvalidStateError: Failed to execute 'send' on 'XMLHttpRequest': The object's state must be OPENED. SOAPClient.js:194

ошибка 2

XMLHttpRequest cannot load https://www.crediweb.lv/axis2/services/Info?wsdl. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://softex-iis:8896' is therefore not allowed access. 

Обязательно указывать имя сайта, к которому обращаюсь? Если да, то в каком формате.
https://www.crediweb.lv/axis2/services/Info так
или www.crediweb.lv/axis2/services/Info

Сейчас веб конфиг выглядит так

<system.webServer>
      <handlers>
      ----------параметры----------
      </handlers>
	<httpProtocol>
        <customHeaders>
          <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>

Скорее всего вы добавили не на том сервере.
Добавьте на том, на который вы обращаетесь:

т.е. должно быть так:

<add name="Access-Control-Allow-Origin" value="softex-iis" />

т.е. это надо делать не на softex-iis, а на crediweb.lv.

Что происходит: вы отправляете HTTP запрос в домен crediweb.lv от домена softex-iis. Веб-сервер на crediweb.lv не настроен на прием кросс-доменных запросов (считается не безопасным), поэтому такие запросы отбрасываются, а вам приходит ERROR с текстом из первого поста.

Кстати, из текста ошибки ясно, что сервер таки разрешает кросс-доменные запросы, но вашего локального доменного имени в списке нет. И это правильно, с точки зрения безопасности. Скорее всего, если домен будет не локальным, а чтото вроде tscrm.com - то все будет ОК.

Добрый день.
Скажите, если я прописал данный параметр в конфиге на сервере, должна ли отображаться строка вида "Acces-Control-Allow-Origin: *" в Response Headers запроса?
Как можно добавить данный параметр в заголовок запроса?

Да, в заголовке ответа она должна обязательно присутствовать. Если её не будет, браузер не примет такой ответ.

Если так, то почему в Responce Headers данный параметр не приходит? Возможна ли ситуация, что заголовки переопределяются после составления запроса. Если да, то как это можно исправить?

Request URL:https://www.crediweb.lv/axis2/services/Info?wsdl
Request Headers
Provisional headers are shown
Origin:http://softex-iis:8896
Referer:http://softex-iis:8896/0/Nui/ViewModule.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:662B2ABF-4722-49B7-90FA-3857A590FF58
Query String Parametersview sourceview URL encoded
wsdl:

Строку вида

<add name="Access-Control-Allow-Origin" value="*" />

в JS коде также пытался установить заголовки следующим кодом:

xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*");.

[quote="Пащенко Александр Сергеевич"]Origin:http://softex-iis:8896[/quote]
Вот это и есть та строка, которую Вы ожидаете в запросе.

Показать все комментарии