解决ajax无法给外部变量赋值
程序员文章站
2022-03-09 22:15:57
...
因为Ajax默认是以异步方式来获取数据的,执行Ajax的时候你程序是继续往下面执行的,这样你那个变量没有被Ajax方法赋值,
function btnclick() {
var flag = "";
console.log(flag)
$.ajax({
type: 'get', // 请求方式
dataType: 'text',
url: 'js/data.json', // 接口
success: function(data) {
flag = 'asdasd';
console.log(flag);
},
error: function(data) {
flag = 'asdasdasdasdasd';
console.log(flag)
}
});
console.log(flag);
return flag;
}
在ajax中设置async:false;也就是同步
当async为false的时候,意味着ajax请求为同步的,那么这个API就默认你是直接通过$.ajax()这个方法调用所返回的结果去取值,而不是通过success回调函数进行取值,所以也就不会调用success这个回调函数。
function btnclick() {
var flag = "";
console.log(flag)
$.ajax({
type: 'get', // 请求方式
dataType: 'text',
url: 'js/data.json', // 接口
async: false, // 同步操作
success: function(data) {
flag = 'asdasd';
console.log(flag);
},
error: function(data) {
flag = 'asdasdasdasdasd';
console.log(flag)
}
});
console.log(flag);
return flag;
}
上一篇: 乱码问题