如何获得imageX在$.ajax()之外使用时显示它的值?
var imageX;
$.ajax({
type: 'GET',
url: 'php/my1.php',
dataType: 'json',
async: 'false',
success: function(response){
imageX = response[0].studentName,
groupX = response[0].subjectId;
}
});
alert(imageX);发布于 2014-02-20 09:10:59
变化
async: 'false',
至
async: false,
‘'false’是由Jquery(JS)转换为true的字符串。
Jquery文档表示异步接受布尔值。
异步( default : true):Type: Boolean默认情况下,所有请求都是异步发送的(也就是说,默认情况下这被设置为true )。如果需要同步请求,请将此选项设置为false。
https://api.jquery.com/jQuery.ajax/
false将导致jQuery.ajax()调用阻塞,直到它返回。而不是这样:
function your ajax_calling_function
call your ajax
callback with results发布于 2014-02-20 09:15:59
您需要设置async: false (布尔型)。
如果用‘包装false关键字,Javascript认为这是一个string。jQuery将async属性设置为true
发布于 2014-02-20 09:38:25
实际上,设置async: false是一种糟糕的方法,引用了这个回答的话
让AJAX调用同步通常是个坏主意。别这么做。我是认真的。我在这里提这件事只是为了完整。你为什么这么问? JavaScript在浏览器的UI线程中运行,任何长时间运行的进程都会锁定UI,使其没有响应。此外,JavaScript的执行时间也有上限,浏览器将询问用户是否继续执行。所有这些都是非常糟糕的用户体验。用户将无法判断一切是否正常。而且,对于连接缓慢的用户来说,效果会更糟。
一种方法是将代码重写为:
function getImage() {
var imageX;
$.ajax({
type: 'GET',
url: 'php/my1.php',
dataType: 'json',
success: function(response){
imageX = response[0].studentName,
groupX = response[0].subjectId;
}
});
return imageX;
}然后,您可以将它传递给一个变量:
var result = getImage();并获取AJAX调用返回的数据,如下所示:
result.success(function (data) {
alert(data);
});https://stackoverflow.com/questions/21903019
复制相似问题