Задача: сделать запрос к веб-сервису soap, в ответе получить строку. Делал на SoapUI - там всё работает корректно. Делаю из js
function soap() {
var xmlhttp = new XMLHttpRequest();
var sr =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v="http://www.omkit.ru/tfs/omniintegration/v1"> \
<soapenv:Header/> \
<soapenv:Body> \
<v:GetLinksToWIOneS> \
<v:RfcId>RFC-141811</v:RfcId> \
</v:GetLinksToWIOneS> \
</soapenv:Body> \
</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert('done. use firebug/console to see network response');
}
}
}
// Send the POST request
xmlhttp.withCredentials = true;
xmlhttp.open('POST', 'http://vsys00658.d0.vsw.ru/TfsIntegrationService.svc', true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(sr);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
alert(xmlhttp.responseXML.getElementById('GetLinksToWIOneSResult'));
}
}
};
};
при выполнении FireBug выдает
Код:
|
"NetworkError: 400 Bad Request - http://vsys00658.d0.vsw.ru/OMKIT.Tfs.Integration/TfsIntegrationService.svc"
TfsInte...ice.svc
Запрос из постороннего источника заблокирован:
Политика одного источника запрещает чтение удаленного ресурса на http://vsys00658.d0.vsw.ru/TfsIntegrationService.svc.
(Причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin'). |
заголовки:
Код:
|
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate
Accept-Language
ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Content-Length
349
Content-Type
text/xml
Host
vsys00658.d0.vsw.ru
Origin
null
User-Agent
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0 |
по этой теме гугл выдает ссылки на ajax, как побороть это - не понимаю, ведь и запрос я делаю в рамках одного домена. добавлял vsys00658.d0.vsw.ru в доверенные узлы, тщетно.
Прошу помощи, тк 1снику сложно разобраться в такой простой задаче, а для интеграции потребовался именно javascript