Вызовите параметризованный веб-сервис asmx, используя JQuery - PullRequest
1 голос
/ 19 февраля 2011

Я пытаюсь вызвать веб-сервис на моем локальном хосте, который ожидает параметр pkId и возвращает результат. WebService работает отлично, но когда я звоню из JQuery, он не возвращает никаких данных. Я попробовал почти все комбинации, чтобы установить параметр для части веб-службы (данных), но не смог получить никакого результата, и настоящая боль в том, что я не получаю никакой ошибки.

    $.ajax({
        type: "POST",
        url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
        data: "{pkId :'" + pkId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            return msg.d;
        }
    });

Ответы [ 3 ]

1 голос
/ 19 февраля 2011

Успех вызывается как обратный вызов из AJAX.Это означает, что его результат возвращается в функцию JJuery AJAX, а не как возврат из вашей функции, выполняющей вызов AJAX.Вам нужно передать result.d другой функции, которая его использует.Поместили ли вы точку останова в функцию успеха, чтобы узнать, какое значение содержит результат?

Для получения информации о потреблении веб-сервисов с использованием вызовов AJAX, проверьте:

, используя jqueryиспользовать веб-службы JSP aspnet /

0 голосов
/ 21 февраля 2011

Я нашел ответ.Actullay Я правильно передавал параметры и замечал ответ в firebug, но не смог поймать его при успехе, потому что ... мой метод веб-сервиса вернул void.Я изменил его, чтобы вернуть строку и увеличить, она отлично работает.

0 голосов
/ 19 февраля 2011

Это не ответ, а средство помочь вам добраться туда.
<Ч /> Даже если у вас есть ошибка, вы ее не получите, так как вы вообще не обрабатывали ошибку.
Также стоит проверить, есть ли в вашем сообщении «d», так как это функция ASP.NET 3.5+.
Кроме того, не возвращайте msg.d, попробуйте предупредить его.

Образец будет

$.ajax({
    type: "POST",
    url: "http://localhost/WSTest/Service.asmx/AuthorGetById",
    data: "{pkId :'" + pkId + "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
     success: function (msg) {
         var datum = msg.hasOwnProperty("d")? msg.d : msg;
         alert("Success" + datum);
        }
    error:function (xhr, ajaxOptions, thrownError){
        alert("Error");
    }
});
...