powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с вызовом WebService через ajax
23 сообщений из 23, страница 1 из 1
Проблема с вызовом WebService через ajax
    #38262992
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, выручайте... Заманался с проблемой одной.
Есть aspx страница.
в ней вызов сервиса :
(сам сервис пашет. проверял - в браузере открывается по ссылке http://localhost:4680/testWS.asmx и метод возвращает xml)
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        function getBestEmployee() {
            $.ajax({
                type: "POST",
                url: 'http://localhost:4680/testWS.asmx/GetBestEmployee',
                contentType: "application/xml; charset=utf-8",
                dataType: "xml",
                success: function (response) {
                    $('#<%=txtFirstName.ClientID %>').val(response.d.pFName);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert('err:' + errorThrown + '  |  ' + 'XMLHttpRequest:' + XMLHttpRequest);
                }
            });



У меня несколько вопросов:
1 - Правильно ли указан URL? формат всмысле. Облазил кучу примеров но везде натыкался на локальные сервисы... ну тоесть без указания HTTP.
2 - почему в таком виде алерт с ошибкой (я успеваю увидеть что там ошибка) быстро исчезает? (Post_back Чтоли?)
3 - Если я оставляю без HTTP url: 'localhost:4680/testWS.asmx/GetBestEmployee' - плюёт такою ошибку в алерте nsresult: "0x805e0006 (<unknown>) при этом алерт уже не исчезает.

про это читал - там говорят что то толи с портами, толи с файрвалом... но я уже пробовал отключать его и один фик...

json пока не предлагать. хочу разобраться с этим, а там дальше уже видно будет
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38262994
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
входящих параметров у метода нет.
и кстати заодно вопрос 4 - response.d - смогу ли я получить доступ к xml своему? и подскажите как его распарсить. Вот такого типа ответ:

<Employee><pId>16</pId><pFName>ваыавы</pFName><pLName>выва</pLName><pDateofBirth>2000-09-02T00:00:00</pDateofBirth><pPhone>43434344334</pPhone><pSalary>345356.4</pSalary></Employee>
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263046
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> json пока не предлагать. хочу разобраться с этим, а там дальше уже видно будет
улыбнуло...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263055
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonic json пока не предлагать. хочу разобраться с этим, а там дальше уже видно будет

J_Mnemonic смогу ли я получить доступ к xml своему? и подскажите как его распарсить.

и после этого ты не понимаешь что ты делаешь херню?

J_Mnemonic почему в таком виде алерт с ошибкой (я успеваю увидеть что там ошибка) быстро исчезает? (Post_back Чтоли?)

куда ты повесил свою функцию, покажи

J_Mnemonic Правильно ли указан URL?

да, но если ты прям прописал в js абсолютный путь ... читать книжки

п.с. плохо искал
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263075
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuJ_Mnemonic Правильно ли указан URL? да , но если ты прям прописал в js абсолютный путь ... читать книжки

п.с. плохо искалВообще-то нет. Имя метода должно передаваться в теле HTTP-запроса, в теле SOAP-конверта.
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263085
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonic, по идее Ваш код должен выглядеть так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    function getBestEmployee() {
        $.ajax({
            contentType: "text/xml; charset=utf-8",
            data: '<?xml version="1.0" encoding="utf-8"?>' +
                  '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
                  '<soap:Body>' +
                  '<GetBestEmployee xmlns="http://tempuri.org/"></GetBestEmployee>' +
                  '</soap:Body>' +
                  '</soap:Envelope>',
            dataType: "xml",
            type: "POST",
            url: 'http://localhost:4680/testWS.asmx',
            success: function (response) {
                $('#<%=txtFirstName.ClientID %>').val(response.d.pFName);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert('err:' + errorThrown + '  |  ' + 'XMLHttpRequest:' + XMLHttpRequest);
            }
        });
    }


Что у Вас отображается в браузере по ссылке http://localhost:4680/testWS.asmx?op=GetBestEmployee ?

Плюс поставьте фидлер и посмотрите уходит-ли запрос и какой ответ (код ответа). Возможно браузер не может выполнить кроссдоменный запрос.

Сервис запущен на Web Developer Server-е студии (порт 4680 вызывает такое подозрение)?
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263087
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicjson пока не предлагать. хочу разобраться с этим , а там дальше уже видно будетВаше право. Вот Вам ссылка: SOAP . Фпирёд!
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263095
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicвходящих параметров у метода нет.
и кстати заодно вопрос 4 - response.d - смогу ли я получить доступ к xml своему? и подскажите как его распарсить. Вот такого типа ответ:

<Employee><pId>16</pId><pFName>ваыавы</pFName><pLName>выва</pLName><pDateofBirth>2000-09-02T00:00:00</pDateofBirth><pPhone>43434344334</pPhone><pSalary>345356.4</pSalary></Employee>
Ну для этого надо переделать:
Код: javascript
1.
2.
3.
success: function (response) {
    $('#<%=txtFirstName.ClientID %>').val(response.d.pFName);
}

как то так:
Код: javascript
1.
2.
3.
4.
5.
success: function (data, status, request) {
    var xml = $.parseXML(request.responseText);

    $('Employee', xml).each(function() { /* Тут что-то делаем с полученными данными о сотрудниках */ };
}


Вместо each можете использовать другой метод jQuery.
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263129
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRuда, но если ты прям прописал в js абсолютный путь ... читать книжки


читать книжки это конечно дельный совет... Из разряда тостов - за здоровье! Но когда время резко поджимает он не очень помогает.
Но спасибо за попытку ;)

Ex_Soft> json пока не предлагать. хочу разобраться с этим, а там дальше уже видно будет
улыбнуло...


ну хоть что то хорошее от моего вопроса :) Я слышел что json очень модный сейчас. Но мне нужно разобраться для начала с тем что у меня есть, иначе я буду плохо спать :)

А теперь по теме:
вызов функции повесил на кнопку:
onClientClick="btnRefresh_Click()"

skyANA Что у Вас отображается в браузере по ссылке http://localhost:4680/testWS.asmx?op=GetBestEmployee ?

Приложил "testWS Web Service.htm"

skyANA Возможно браузер не может выполнить кроссдоменный запрос.

Как этого избежать? Я действительно всё это просматриваю в VS2010.
И ещё не совсем я понял, зачем Вы мне советуете этот параметр добавлять в вызов
Код: javascript
1.
2.
3.
4.
5.
6.
 data: '<?xml version="1.0" encoding="utf-8"?>' +
                  '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
                  '<soap:Body>' +
                  '<GetBestEmployee xmlns="http://tempuri.org/"></GetBestEmployee>' +
                  '</soap:Body>' +
                  '</soap:Envelope>',


Если входящих параметров нету? Я думал в data только входящие параметры можно передавать.
и почему нельзя указать вызов метода в самом URL (как я видел это во многих примерах)
'http://localhost:4680/testWS.asmx',

Понимаю что вопросы ламерские, но чес слово, прежде чем написать сюда, перерыл кучу сайтов, везде либо Json либо путь указан не http. Сюда написал уже в 4 ночи...
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263137
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, ещё, для инфы. Когда отображаю страницу через Internet Explorer,
alert('err:' + errorThrown) - это выдаёт No Transport
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263174
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA Вообще-то нет. Имя метода должно передаваться в теле HTTP-запроса, в теле SOAP-конверта.


Хм... Я видел кучу примеров, где метод передаётся прямо в URL...
Вот например где то тут на форуме видел такую ссылку.
http://www.mikesdotnetting.com/Article/96/Handling-JSON-Arrays-returned-from-ASP.NET-Web-Services-with-jQuery
действительно, очень хороший пример, подробный и понятный, и я вроде делаю всё по той же аналогии, кроме того что у меня не json и URL содержит "http:\\localhost\"
тем не менее что то аказца не так я делаю...
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263349
J_Mnemonic,

Держи
HTML page
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <title></title>
</head>
<body>
    Ризалт: <span id="result"></span>
    

    <input type="button" id="btn1" value="Test" />
    <script>

        $('#btn1').click(function(e)
        {
            e.preventDefault();
            $.ajax({
                contentType: /*text/xml*/"application/json; charset=utf-8",
                dataType: /*xml*/"json",
                type: "POST",
                url: 'http://localhost:7200/webservice1.asmx/FuckAll',
                success: function(response)
                {
                    $('#result').html(response.d);
                },
                error: function()
                {
                    alert('err:' );
                }
            });
        });
    </script>
</body>
</html>


service
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebApplication1
{
    /// <summary>
    /// Сводное описание для WebService1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Чтобы разрешить вызывать веб-службу из скрипта с помощью ASP.NET AJAX, раскомментируйте следующую строку. 
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string FuckAll()
        {
            return "Пошли все на...!";
        }
    }
}

На веб странице эксемель нахрен не нужен - так шо json в зубы. Потом спасибо скажешь.
ПС: в твоем примере response.d.pFName именно для ответа сервиса в json - только в этом случае ризалт пакуется в объект d.
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263357
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробегалло,

Большое тебе спасибо! Да, я пока искал решение своей проблемы тоже заметил что почти во всех примерах используют его - Json.
Скорее всего я и вольюсь в этот дружный поток людей :) Но проблема у меня была в другом и я её буквально токо что выгуглил (давно мой мозг не взрывался так) - Кросс-доменность (про которую мне тут сказали, но не объяснили что это).
помогло вообщем это: jQuery.support.cors = true;
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263361
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, а поясни пожалуйста. Так для понимания - если в моём случае, метод веб сервиса возвращает экземпляр класса какого то... со своими методами, свойствами и ещё чем либо. Как вернёт его Json? Или такие сложные типы впринципе нельзя получать из веб сервиса?
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263474
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
странно, работает. но только в IE. в FF вызов падает в ошибку...

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        function getBestEmployee() {
            $.ajax({
                type: "GET",
                crossDomain: true,
                cache: false,
                url: 'http://localhost:4680/testWS.asmx/GetBestEmployee',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (response) {
                    $('#<%=txtFirstName.ClientID%>').val(response.d.pFName.toString());
                    alert();
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert('err:' + errorThrown + '  |  ' + 'XMLHttpRequest:' + XMLHttpRequest);
                }
            });
        }
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263595
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhandmadeFromRuпропущено...
да , но если ты прям прописал в js абсолютный путь ... читать книжки

п.с. плохо искалВообще-то нет. Имя метода должно передаваться в теле HTTP-запроса, в теле SOAP-конверта.
вообще то да. asmx сервису можно указать имя метода в адресе.
вообще то у GetBestEmployee есть входные параметры pPhone pSalary (как я понял) - вот их и нужно указывать в параметре data в $.ajax. Надо указать json объект но тебе его не предлагать - :).
далее у приложения на http://localhost:4680 в конфиге указано, что веб сервисы можно по Post вызывать?
по умолчанию это между прочим выключено.
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263599
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
monstrU,
Спасибо, я уже решил эти проблемы, теперь у меня другие :) посмотрите пожалуйста мой последний пост
и кстати а как именно выглядит запрет POST?
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263710
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monstrUskyANAпропущено...
Вообще-то нет. Имя метода должно передаваться в теле HTTP-запроса, в теле SOAP-конверта.
вообще то да. asmx сервису можно указать имя метода в адресе.
Ага, я лажанулся. Если метод не принимает параметры, или они простые, то можно.
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38263711
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J_Mnemonicи кстати а как именно выглядит запрет POST? HOW TO: Limit the Web Services Protocols that a Server Permits
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38264578
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё ещё ковыряюсь с проблемой вызова в FF и Opera...

Консоль отладки показывает "500 Internal Server Error"
В VS в окне output сделал "выводить только ошибки" - ничего. пусто...

Подскажите пожалуйста, что ещё и где проверить можно? (если возможно подробно)
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38264598
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38264637
J_Mnemonic,

Чего проще:
client err
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <title></title>
</head>
<body>
    Ризалт: <span id="result"></span>
    

    <input type="button" id="btn1" value="Test" />
    <script>
        $('#btn1').click(function(e)
        {
            e.preventDefault();
            $.ajax({
                contentType: /*text/xml*/"application/json; charset=utf-8",
                dataType: /*xml*/"json",
                type: "POST",
                url: 'http://localhost:7200/webservice1.asmx/FuckAll2',
                success: function(response)
                {
                    $('#result').html(response.d);
                },
                error: function(err)
                {
                    w = window.open('', '', 'width=400,height=200');
                    w.document.write(err.responseText);
                    w.focus();
                }
            });
        });
    </script>
</body>
</html>

...
Рейтинг: 0 / 0
Проблема с вызовом WebService через ajax
    #38264672
J_Mnemonic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробегалло,
сделал в точности как ты сказал - открылось пустое окно... странно всё это...
responseText - однозначно пустой... может быть до вызова как то и не доходит?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        
function getBestEmployee() {
            $.ajax({
                type: 'POST',
                crossDomain: true,
                cache: false,
                url: 'http://localhost:4680/testWS.asmx/GetBestEmployee',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: showBestEmployee,
                error: function (err) {
                    w = window.open('', '', 'width=400,height=200');
                    w.document.write(err.responseText);
                    w.focus();
                }
            });
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема с вызовом WebService через ajax
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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