使用jQuery AJAX通过Web服务从数据库中获取数据

时间:2009-05-04 21:31:58

标签: jquery ajax database web-services

我试图通过使用JQuery Ajax来调用Web服务例程来从数据库中检索值。 Web服务例程设置正确并返回我需要的值,但是我对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 个答案:

答案 0 :(得分:3)

你建议你想做的问题是,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); }
});

答案 1 :(得分:0)

请在JQuery http://codernd.com/DevelopersFile/Reading-XML-file-using-JQuery.aspx

中找到使用xml的更好示例