jQuery Ajax返回变量(逻辑缺陷)

时间:2014-09-24 10:31:26

标签: javascript jquery ajax

我一直在努力学习Javascript / jQuery但是我已经碰壁了,我似乎无法破解。 这是我的代码:

function beginProblem() {
var myVar = getMyVar();
console.log(myVar);
}

function getMyVar(){
$.ajax({
    url: "myTest.php",
    success: function(result){
        var myVar = result;
        //  return myVar;   THIS DOESN'T WORK
    }
});
return myVar; //    This doesn't work either
}

beginProblem();

myVar记录为未定义,因为console.log在getMyVar完成之前运行。 我已经阅读了一些关于这个问题的其他问题,但我没有理解解决方案,有人能够让我高兴,当我需要从ajax调用中获取变量时,我应该记住什么,然后才能执行其余的功能

抱歉,并提前致谢!

3 个答案:

答案 0 :(得分:0)

所以在ajax方法中,你将url指向" myTest.php"。再次检查此网址。如果您正在使用Chrome,请右键单击选择检查元素(或按F12,如果您使用的是Firefox,则可以下载并安装Firebug插件进行调试),然后再点击" Network"选项卡,并以原始格式查看您的请求。如果您的请求返回代码200,那么除非检查它,否则它的意思是网址是可以的。如果代码为200,请再次检查您的功能。

如果是,它返回代码500,再次检查你的功能,返回类型,逻辑顺序。 400,这意味着它可以找到您的服务,您必须检查您的网址完全路径。我对PHP没有足够的知识。但我在Java方面经验丰富,如果你改成java,那就做我的方向。

答案 1 :(得分:0)

尝试这样的一些

function beginProblem() {
var myVar = getMyVar({
  success:function(result)
  {
    console.log(result);
  }
});
}

function getMyVar(obj){
$.ajax({
    url: "myTest.php",
    success: obj.success
});
}

beginProblem();

答案 2 :(得分:0)

试试这个,它会起作用....

function beginProblem() {
var myVar = getMyVar();
console.log(myVar);
}

function getMyVar(){
$.ajax({
    url: "myTest.php",
    async: false,
    success: function(result){
         return  result; 
    }
});
    }

beginProblem();