This question already has answers here:
How do I return the response from an asynchronous call?
(38个答案)
5年前关闭。
是否可以从函数外部检索
- 编辑 -
关于功能的执行:
如果可能的话,我想一键执行ajaxFunction()
然后单击popup(),或者
以某种方式等待ajax函数结束,然后调用警报框
用伪代码:
但是由于同步请求阻止了浏览器,因此您几乎在所有情况下都应使用异步调用(如果我没记错的话,不应在同步请求上调用onreadystatechange,但是不同的浏览器的行为会有所不同)
您可以做的是:
(38个答案)
5年前关闭。
是否可以从函数外部检索
onreadystatechange
函数中设置的变量?- 编辑 -
关于功能的执行:
如果可能的话,我想一键执行ajaxFunction()
然后单击popup(),或者
以某种方式等待ajax函数结束,然后调用警报框
用伪代码:
function ajaxFunction(){
//creating AJAX
...
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function (){
if(ajaxRequest.readyState == 4){
//success code
======>Here i want to set variable <=====
var MyVariable='MyContent';
}
}
//Retrieving page
....
}
function popup(){
ajaxFunction();
alert(MyVariable);
}
最佳答案
以下代码假定ajax请求是同步的:
function popup(){
ajaxFunction();
alert(MyVariable);
}
但是由于同步请求阻止了浏览器,因此您几乎在所有情况下都应使用异步调用(如果我没记错的话,不应在同步请求上调用onreadystatechange,但是不同的浏览器的行为会有所不同)
您可以做的是:
function ajaxFunction(callback){
//creating AJAX
...
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function (){
if(ajaxRequest.readyState == 4){
//success code
callback('MyContent')
}
}
//Retrieving page
....
}
function popup() {
ajaxFunction(function(MyVariable){alert(MyVariable););
}
关于javascript - 在AJAX中,如何从onreadystatechange = function()内部检索变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/290214/