我尝试将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
答案 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);