Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблема с запросом к web-сервсису ASP.NET / 14 сообщений из 14, страница 1 из 1
01.08.2014, 13:34
    #38710803
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
Всем привет.
Имеется веб-сервис на асп.нет с именем AboutUser
в качестве параметров он ничего не принимает, за исключением того, что для обращения к нему в SOAP обращении нужно передавать заголовок. Ниже soap сообщение, которое генерируется веб-сервисом:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <SessionSOAPHeader xmlns="http://tempuri.org/">
      <GUIDSession>string</GUIDSession>
      <GUIDModule>guid</GUIDModule>
    </SessionSOAPHeader>
  </soap:Header>
  <soap:Body>
    <AboutUser xmlns="http://tempuri.org/" />
  </soap:Body>
</soap:Envelope>



обращаюсь к нему с помощью POST запроса средствами jQuery

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$.ajax({
                type: 'POST',
                crossDomain: true,
                cache: false,
                url: 'http://host.bla/service.asmx',
                data: soapXML,
                contentType: 'text/xml; charset=utf-8', 
                dataType: 'xml', 
                success: OnGetMemberSuccess,
                error: OnGetMemberError
            });


где soapXML собственно вышеуказанное соап сообщение с подставленным значениями в заголовке

Проблема в том, что запрос не удается. Через метод OnGetMemberError вывожу ошибку:
Код: html
1.
TypeError: Cannot read property 'documentElement' of null



Не могу понять в чем проблема? Может кто подскажет?
Хотел через JSON, но не знаю как через него передавать заголовок.

Пробовал обращаться через XMLHttpRequest, так же не получается.
Ошибка возникает про проверки статуса 200.

Может чего нужно добавить в веб-сервисе? Читал много инфы, но ничего не нашел, только добавил к веб-сервису:
Код: c#
1.
[System.Web.Script.Services.ScriptService]


, но результата не дало.

Спасибо.
...
Рейтинг: 0 / 0
04.08.2014, 10:36
    #38711880
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
вообщем, тут немного поэкспериментировал
json запросы к веб-сервису, которые не принимает никаких значений, а только возвращает информацию работает, НО только в IE (в Опере и Хроме вроде сообщение передает, но принимаемую информацию не отображает)
если хочу сделать запрос к методу с передачей параметра
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
$.ajax({
        type: 'POST',
        crossDomain: true,
        cache: false,
        url: "http://localhost:4712/Service.asmx/aboutWebServices",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        data: '{"full" : true}',
        success: function (response) 
        {
            document.getElementById('name').innerHTML = ' | Удачно: ' + response.d; 
        },
        error: function (request, status, error) {

            document.getElementById('messeges').innerHTML = document.getElementById('messeges').innerHTML + " | Ответ " +
             request.statusText + " статус " + status + " ошибка " + error + "
";
        }
    });


то в IE выводится ошибка
Код: html
1.
2.
3.
Ответ Internal Server Error 
статус error 
ошибка undefined


в других браузерах также не работает

вот SOAP, который предлагается отправлять
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <aboutWebServices xmlns="http://bla.ru/">
      <full>boolean</full>
    </aboutWebServices>
  </soap:Body>
</soap:Envelope>
...
Рейтинг: 0 / 0
04.08.2014, 10:38
    #38711882
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
доп. вопрос: почему не работает в других браузерах, по мимо эксплорера?
...
Рейтинг: 0 / 0
04.08.2014, 11:18
    #38711918
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
/**
 * Sends AJAX POST request to the server.
 *
 * @param envelope {String} SOAP envelope to send to the server.
 * @param errorCallback {Function}
 * @param successCallback {Function}
 */
function post(envelope, errorCallback, successCallback) {
    $.ajaxSetup({ cache: false });
    $.support.cors = true;
    $.ajax({
        contentType: 'text/xml; charset=utf-8',
        data: envelope,
        dataType: 'xml',
        error: errorCallback,
        success: successCallback,
        type: 'POST',
        url: server });
}
...
Рейтинг: 0 / 0
04.08.2014, 13:37
    #38712097
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
вообщем всё заработало, проблема была в namespace=" http://tempuri.org"
установил значение своего ресурса и всё заработало, единственное только в IE (по всей видимости из за того что XML (который приходит в ответе) парсить умеет только он)
если кто знает как сделать чтобы заработало в других браузерах буду очень рад узнать как
...
Рейтинг: 0 / 0
04.08.2014, 15:59
    #38712294
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
badfilinвообщем всё заработало, проблема была в namespace=" http://tempuri.org" Внимательнее надо быть.
В документации, что генерируется сервисом, указывается какой должен быть указан namespace SOAP-конверте.

badfilinустановил значение своего ресурса и всё заработало, единственное только в IE (по всей видимости из за того что XML (который приходит в ответе) парсить умеет только он)
если кто знает как сделать чтобы заработало в других браузерах буду очень рад узнать какЧто заработало-то? Разбирайте ответ самостоятельно. jQuery прекрасно работает с XML.
...
Рейтинг: 0 / 0
04.08.2014, 17:15
    #38712404
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
суть в том, что в ИЕ запрос отправляется и приходит ответ, который я могу обработать
в других браузерах: Опера, Хром, ФФ вылезает ошибка

Код: html
1.
 Ответ error статус error ошибка


(метод вывода ошибки выше)

и еще обратил внимание во всех браузерах по какой то причине не работает
document.getElementById("el1") - пишет что нет такого элемента, где el1 это элемент <textarea>,
с <div> таких проблем не наблюдается
PS: в ИЕ 6 работал (сейчас стоит ИЕ 8)
...
Рейтинг: 0 / 0
04.08.2014, 17:27
    #38712420
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
вопрос о проблеме с getElementById снимается
не увидел, что textarea вместо Id имеет Name

с остальным разбираюсь
...
Рейтинг: 0 / 0
04.08.2014, 17:41
    #38712446
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
badfilinсуть в том, что в ИЕ запрос отправляется и приходит ответ, который я могу обработать
в других браузерах: Опера, Хром, ФФ вылезает ошибкаМой код работает не только в IE: 16394789 . Проверено
...
Рейтинг: 0 / 0
04.08.2014, 17:50
    #38712454
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
а чем мой отличается?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    $.ajaxSetup({ cache: false });
    $.support.cors = true;
    // выполнение запроса
    $.ajax({
        type: 'POST',
        url: url,
        contentType: 'text/xml; charset=utf-8', 
        dataType: 'text',
        data: soapAboutUser, 
        success: function (data, textStatus, jqXHR) 
        {
            document.getElementById('n1').value += "    " + $(data).find("AboutUserResult").find("Login").text() +
             " " + textStatus;
        },
        error: function (request, status, error) {

            document.getElementById('messeges').innerHTML += " | Ответ " + 
             request.statusText + ", статус " + status + ", ошибка " + error + "
";
        }
    });
...
Рейтинг: 0 / 0
04.08.2014, 18:35
    #38712498
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
badfilinа чем мой отличается?У меня
Код: javascript
1.
dataType: 'xml'
...
Рейтинг: 0 / 0
05.08.2014, 08:31
    #38712696
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
ничего не изменилось
...
Рейтинг: 0 / 0
05.08.2014, 08:44
    #38712701
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
Ну что тут скажешь. Chrome + Developer Tools и Fiddler в руки и отлаживаться, отлаживаться.
У меня лично всё работает.

Access-Control-Allow-заголовки в конфиге на сервере прописаны?
...
Рейтинг: 0 / 0
05.08.2014, 09:42
    #38712735
badfilin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом к web-сервсису ASP.NET
да проблема была в заголовках. добавил и заработало.
спасибо!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Проблема с запросом к web-сервсису ASP.NET / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]