为什么这个jQuery函数不能正常运行?

Jas*_*son 1 jquery

在jQuery方面,我是一个完全的菜鸟,但我正在努力学习.我在这里做错了什么?

function MakeCall(url) { 
var result;
$.ajax({
    url: url,
    dataType: "text",
    success: function(txt) {
        result = txt;
        return;
    }
});
alert(result);
return result;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

好的,抱歉这一点愚蠢......我已经修好了那一部分.现在我的问题是它现在的警报返回"未定义",即使结果在成功函数中正确设置...

非常感谢...

Nad*_*mli 13

    result == txt;
Run Code Online (Sandbox Code Playgroud)

应该

    result = txt;
Run Code Online (Sandbox Code Playgroud)

你的第二个问题是ajax调用是异步的.即alert(result)语句可能会在成功回调函数之前执行.

你问的是如何防止这种情况.你不能.这不是一个错误.这就是AJAX所代表的.如果您希望在ajax调用之后执行某些操作,请将其添加到成功回调函数中.

编辑

如果你真的需要在其他函数中处理结果,那么你可以这样做:

$.ajax({
    url: url,
    dataType: "text",
    success: function(result) {
        someOtherFunction(result)
        return;
    }
});
Run Code Online (Sandbox Code Playgroud)