Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2016, 15:06
Новичок на форуме
Отправить личное сообщение для roofless Посмотреть профиль Найти все сообщения от roofless
 
Регистрация: 06.06.2016
Сообщений: 7

Вызов веб-сервиса soap
Задача: сделать запрос к веб-сервису 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
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2016, 18:47
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Посмотри заголовок Origin в запросе и сравни с тем, куда отправляешь запрос. Или просто сделай так, чтобы сервер отсылал заголовок Access-Control-Allow-Origin : тут твой Origin или *. Подробнее https://learn.javascript.ru/xhr-crossdomain

Последний раз редактировалось destus, 06.06.2016 в 19:31.
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2016, 08:18
Новичок на форуме
Отправить личное сообщение для roofless Посмотреть профиль Найти все сообщения от roofless
 
Регистрация: 06.06.2016
Сообщений: 7

Сообщение от destus Посмотреть сообщение
Посмотри заголовок Origin в запросе и сравни с тем, куда отправляешь запрос. Или просто сделай так, чтобы сервер отсылал заголовок Access-Control-Allow-Origin : тут твой Origin или *. Подробнее https://learn.javascript.ru/xhr-crossdomain
подскажите, а как посмотреть заголовок в запросе?
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2016, 08:38
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

roofless,
У тебя в сообщении выше есть, я не заметил. Видим тут Origin null, следовательно браузер и определяет запрос как кроссдоменный.

Последний раз редактировалось destus, 07.06.2016 в 08:56.
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2016, 08:59
Новичок на форуме
Отправить личное сообщение для roofless Посмотреть профиль Найти все сообщения от roofless
 
Регистрация: 06.06.2016
Сообщений: 7

Сообщение от destus Посмотреть сообщение
roofless,
У тебя в сообщении выше есть, я не заметил. Видим тут Origin null, следовательно браузер и определяет запрос как кроссдоменный.
да, но в чем тогда проблема? firebug неверно определяет ошибку?
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2016, 09:05
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

roofless, почему Origin null, откуда вы шлете запрос? С локального файла, тогда о каком "в рамках одного домена" может идти речь?

Последний раз редактировалось Rise, 07.06.2016 в 09:11.
Ответить с цитированием
  #7 (permalink)  
Старый 07.06.2016, 09:15
Новичок на форуме
Отправить личное сообщение для roofless Посмотреть профиль Найти все сообщения от roofless
 
Регистрация: 06.06.2016
Сообщений: 7

Сообщение от Rise Посмотреть сообщение
roofless, почему Origin null, откуда вы шлете запрос? С локального файла, тогда о каком "в рамках одного домена" может идти речь?
с локального файла. моя машина и веб-сервис находятся в одном домене.
почему Origin null - для меня загадка, весь используемый код я предоставил
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2016, 09:18
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

roofless,
надо файл на сервер загрузить и оттуда сервис вызывать.
Ответить с цитированием
  #9 (permalink)  
Старый 07.06.2016, 09:20
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от roofless Посмотреть сообщение
с локального файла. моя машина и веб-сервис находятся в одном домене.
Это как так что за чудеса?
Ответить с цитированием
  #10 (permalink)  
Старый 07.06.2016, 09:34
Новичок на форуме
Отправить личное сообщение для roofless Посмотреть профиль Найти все сообщения от roofless
 
Регистрация: 06.06.2016
Сообщений: 7

Сообщение от destus Посмотреть сообщение
roofless,
надо файл на сервер загрузить и оттуда сервис вызывать.
это невозможно, задача как раз и есть в вызове с любого клиента
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выпадающее меню в ИЕ не работает на веб сервере. Saratov64 Internet Explorer 1 05.05.2016 11:13
Разработка веб сервиса на JS Paruj Работа 0 23.11.2015 14:06
Вызов ODATA сервиса в контроллере Raissa Angular.js 1 26.03.2015 11:47
Вызов WCF сервиса из JavaScript. xeonet AJAX и COMET 0 04.06.2009 22:49