我有一个 javascript,在其中使用 ajax 来获取值。 但是当我想在 ajax 语句之外使用该值时,它不起作用。
我的代码:
var value;
$.get("ajaxstatus.php",
{id: id})
.done(function(data) {
value = data
alert('inner' + data)
});
alert('outer' + value)
内部警报只给我从ajax返回的值,但是当我想使用外部警报中的值时,它是空的,因为它尚未分配。
当我使用 ajax post
而不是 get
时,我遇到了完全相同的问题。
如何获取从 ajax 语句返回的值(也在其外部)?
最佳答案
Javascript 是异步的,这意味着在可能的情况下,它在评估代码时不会阻止处理。因此,虽然您的 ajax 调用可能需要一些时间才能返回,但 javascript 会一直处理您的代码直至结束。当您的 AJAX 调用最终返回时,它会触发一个回调,即 .done()
。
所以...
$.get("ajaxstatus.php",
{id: id})
.done(function(data){
doWork(data);
});
function doWork(data) {
alert('after' + data);
};
关于javascript - 使用ajax在ajax语句之外获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51549074/