Mootools变量响应

时间:2013-02-14 12:14:46

标签: ajax mootools response

我尝试将ajax响应放在变量tu中稍后使用但是它不起作用

这是我的代码

var retourn;    

var requestData = new Request ({
    url: 'dnscheck.php',
    async:false,
    onComplete: function(response){
        //alert(response); // this work good
        retourn = response;
    }
});

alert(retourn); // shows me undefined

mootools 1.2.4版本

知道如何解决这个问题


在清除历史记录并尝试很多次之后,它很好,谢谢Grim

var retourn;    

var requestData = new Request ({
    url: 'dnscheck.php',
    async:false,
    onComplete: function(response){
        //alert(response); // this work good
        retourn = response;
    }
});

requestData.send();
alert(retourn); // work fine

1 个答案:

答案 0 :(得分:1)

请记住,ajax调用是异步的,因此 onComplete 处理程序中的代码只会在调用返回时执行,而最后的警报将在创建请求的代码后立即执行(你必须先调用发送方法,顺便说一句 - 这时变量将始终未初始化。

编辑:没注意到您使用了aync:false(这通常是一个坏主意btw ...) - 您仍然需要发送请求,但< / p>

requestData.send();

编辑(2):此外,最好不要使用onComplete回调(在响应返回时调用它,甚至在检查实际返回的之前) - 而是使用onSuccess回调,并注意响应可能失败的原因有很多,所以你可能也想定义onFailure回调并在那里做一些事情。

    var retourn;    

    var requestData = new Request ({
        url: 'yoururl.php',
        async:false,
        onSuccess: function(response){
            retourn = response;
        },
        onFailure: function(xhr) {
            retourn = "failed";
        }
    });

    requestData.send();

            alert(retourn);