Jquery Ajax вызов веб-службы не удается - PullRequest
2 голосов
/ 28 мая 2009

Может кто-нибудь помочь? У меня проблема с вызовом веб-сервиса asp.net из jquery ... на самом деле я думаю, что это может быть jquery ... так как у меня есть точка останова, и она не приходит в веб-сервис ..

Вот мой jquery, метод веб-сервиса принимает 2 параметра ...

Итак, я настроил простой тест для прохождения в 7 и 7. Я попытался заменить его словом «тест», и он не работает ..

В основном попадает в функцию ошибки, которая отображает "извините, ошибка произошла", но ошибка не определена.

jQuery.ajax({
            type: 'POST'
            , url: 'CallService.asmx/TempCanMakeCall'
            , contentType: 'application/json; charset=utf-8'
            , dataType: "json"
            , data: "{'reservationNum':'7','completedReservationNum':'7'}"
            , success: function(data, status) {
                alert(data);
            }
            , error: function(xmlHttpRequest, status, err) {
                alert('Sorry! Error happens.' + err);
            }
    }
        );

Вот веб-сервис asp.net

[WebMethod()]
    public bool TempCanMakeCall(string reservationNum, string completedReservationNum )
    {

            return true;
    }

Ответы [ 4 ]

2 голосов
/ 28 мая 2009

xmlHttpRequest.responseText всегда был моей идеей при работе с ошибками jQuery AJAX.

Попробуйте сделать статическую функцию ASP.NET:

[WebMethod()]
public static bool TempCanMakeCall(string reservationNum, string completedReservationNum )
{

        return true;
}

Также обратите внимание, что возвращаемое значение JSON инкапсулировано в объект с именем 'd' (специфичный для ASP.NET). Чтобы отобразить возвращаемое значение в случае успеха, вам нужно будет сделать это:

success: function(data, status) {
            alert(data.d);
        }
1 голос
/ 28 мая 2009

Вызов jquery ajax выглядит нормально. Я думаю, вам нужно убедиться, что путь к "CallService.asmx" правильный. Теперь я буду работать, только если файл, выполняющий вызов jQuery, находится в том же виртуальном каталоге, что и ASMX.

0 голосов
/ 28 мая 2009

Вы можете проверить свойство xmlHttpRequest.responseText. Текст ответа, скорее всего, является HTML-документом, возвращаемым сервером, который содержит причину ошибки.

Если вы используете Visual Studio, вы также можете включить отладку скриптов в Internet Explorer и добавить следующее ключевое слово в функцию ошибки: debugger. Браузер видит это как точку останова и вызывает отладчик (который должен быть Visual Studio). Теперь вы можете проверить все содержимое экземпляра xmlHttpRequest.

Для ясности ваша функция ошибок будет выглядеть следующим образом:

function(xmlHttpRequest, status, err)
{
    debugger;
    ...rest of your function...
}
0 голосов
/ 28 мая 2009

В функции обратного вызова с ошибкой вы можете проверить xmlHttpRequest.status, чтобы получить код http, возвращаемый с сервера. Это может дать вам другую подсказку. Если приведенный выше ичибан верен, он должен быть 404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...