Использование jQuery AJAX для извлечения данных из базы данных через веб-сервис - PullRequest
1 голос
/ 05 мая 2009

Я пытаюсь извлечь значения из базы данных, используя JQuery Ajax для вызова подпрограммы веб-службы. Процедура веб-службы настроена правильно и возвращает требуемое значение, однако я не совсем понимаю, как работает jquery ajax ... Я не знаю, как получить значение

$.ajax({
        type: 'POST',
        url: 'myservices.asmx/getRowName',
        dataType: 'xml',
        data: ({ param1: someData, param2: someData }),
        success: function(data) {
            alert( data.getElementsByTagName("string")[0].firstChild.data );
        },
        error: function(msg) { alert(msg.statusText); }
    });

Так что в случае успеха я могу получить доступ к данным, возвращенным через эту функцию (я проверил, и она возвращает правильные данные), но что, если я хочу использовать данные вне этой функции?

Возвращает ли $.ajax что-нибудь, где я мог бы получить нужные мне данные? такие как ...

data = $.ajax({...all the settings...});

или ...

data = $.ajax({...settings...}).responseText;

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 05 мая 2009

Проблема с тем, что вы предлагаете сделать, заключается в том, что AJAX - это асинхронный процесс, и попытка присвоить результат вызова AJAX переменной, подобной этой, предполагает, что код должен "зависнуть" пока результат не вернется. Это не так, как с Javascript. Большую часть времени я делаю все, что мне нужно, со своими данными в самом обратном вызове. Если этого недостаточно, способ сделать это состоит в том, чтобы иметь функцию, которая принимает данные в качестве аргумента и вызывает их, когда вы закончите. Это может показаться вам странным, если вы работаете с другими языками, но в Javascript все гораздо более основано на событиях («делайте так, когда это происходит»), поэтому вам необходимо соответствующим образом настроить свой код:

function doStuffWithData(data) {
    // do whatever you want here
}

$.ajax({
    type: 'POST',
    url: 'myservices.asmx/getRowName',
    dataType: 'xml',
    data: ({ param1: someData, param2: someData }),
    success: function(data) {
        doStuffWithData(data);
    },
    error: function(msg) { alert(msg.statusText); }
});
0 голосов
/ 03 января 2012

Пожалуйста, найдите лучший пример использования xml в JQuery http://codernd.com/DevelopersFile/Reading-XML-file-using-JQuery.aspx

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