Javascript 从Jquery的Get函数返回值

Javascript 从Jquery的Get函数返回值,javascript,jquery,Javascript,Jquery,您好,我正在尝试在成功时从jquery get请求的get函数获取返回值 我已经尝试了很多方法,但都没有成功。我有两种形式: (一) (二) 但是他们两个都没有给我任何结果 第二个输出我,因为找不到数据。第一个是谷歌搜索时首选的…结果为未定义,而不是试图获取输出,然后像以下那样处理: var output = GetResultOutput(); process(output); 您可以将进程作为回调传递,如下所示: var GetResultOutput = function (callba

您好,我正在尝试在成功时从jquery get请求的get函数获取返回值

我已经尝试了很多方法,但都没有成功。我有两种形式:

(一)

(二)

但是他们两个都没有给我任何结果


第二个输出我,因为找不到数据。第一个是谷歌搜索时首选的…结果为未定义,而不是试图获取输出,然后像以下那样处理:

var output = GetResultOutput();
process(output);
您可以将进程作为回调传递,如下所示:

var GetResultOutput = function (callback) {
    $.ajax({
        type: "GET",
        url: serviceUrl,
        dataType: "xml",
        success: function (xml) {
            callback(xml);
        }
    });
};

// usage:
GetResultOutput(process);

Ajax请求是异步的,这意味着您不能立即从调用中“返回”数据。这就是为什么所有形式的
$.ajax
在接收数据或发生错误时都会调用一个或多个回调

这意味着您的方法必须如下所示:

GetResultOutput = function (callback) {
   $.ajax({
        type: "GET",
        url: serviceUrl,
        dataType: "xml",
        success: callback
    });
}
回调函数看起来像:

function callback(xml)
{
   console.log('done: ' + xml);
}

您还可以使用以下命令使ajax调用同步:

   $.ajax({
        type: "GET",
        url: serviceUrl,
        async: false,
        dataType: "xml",
        success: function (xml) {
            outPut = "done";
        }
    });

你可以,但它会在执行请求时使浏览器锁定-首先有点否定ajax的目的。这是真的。可能会发生…所以你推荐下面你提供的fn…因为那样的话,当我尝试时我会出错如果你想让这个调用同步,那么ajax是错误的工作工具!tnx Jamiec,我最好使用异步
function callback(xml)
{
   console.log('done: ' + xml);
}
   $.ajax({
        type: "GET",
        url: serviceUrl,
        async: false,
        dataType: "xml",
        success: function (xml) {
            outPut = "done";
        }
    });