Здравствуйте!
При попытке отправить запрос на получение данных (обращение идет по https)
возникает следующая ошибка.
Как разрешить доступ к другим сайтам?
Нравится
А где именно в IIS нужно добавить свойство
Access-Control-Allow-Origin?
В web.config.
http://enable-cors.org/server_iis7.html
Добавил со звездочкой.
Появилась ещё одна ошибка.
ошибка 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]
Вот это и есть та строка, которую Вы ожидаете в запросе.