我正在使用变量来存储来自post方法的json数据。当我在post方法之外使用该变量时,它将其值显示为undefined。我如何访问该变量。这是我的代码。
/(.{7,}(?=[#?!@$%^&*-])|(?=[#?!@$%^&*-]).{7,})/
val是一个全局变量。并且我需要在从post方法分配后在另一个函数中使用此变量。
答案 0 :(得分:1)
因为您要在异步函数中分配变量,所以代码将继续执行到第二个警报(val)并返回到回调函数,直到请求得到响应。您可以通过同步请求访问数据:
$.ajax({
url: "dat/jsondat.php",
async: false, //config it here
success: function(data){
alert(val);
}
});
或者只是在成功回调中操作您的数据。
另一个选择是去ES6中的Promise。
答案 1 :(得分:0)
设置几毫秒的时间,然后像这样警告'val':
var val;
$.post("dat/jsondat.php",function(data)
{
alert(data);//this alert value
val = data;
alert(val);//this alert value
});
setTimeout(function(){
alert(val);
/* other functions */
},200)
答案 2 :(得分:0)
请将变量声明为 你的ajax请求之前的window.var(变量名),然后把ajax响应放入其中,然后尝试使用.. 我希望它会有所帮助。