json和php的ajax调用存在问题
我有一个AJAX函数,从php文件中获取结果,如下所示json和php的ajax调用存在问题,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我有一个AJAX函数,从php文件中获取结果,如下所示 $.ajax({ type: "POST", url: "GeteT.php", cache:false, data:"id="+ encodeURIComponent(1), dataType:'json', success: function(json) {
$.ajax({
type: "POST",
url: "GeteT.php",
cache:false,
data:"id="+ encodeURIComponent(1),
dataType:'json',
success: function(json)
{
g_foo = json.foo;
}
});
现在我想使用g_foo的值,但我不能尝试使用console.log,但我面临一个奇怪的问题。像
如果我使用这样的函数
$.ajax({
type: "POST",
url: "GeteT.php",
cache:false,
data:"id="+ encodeURIComponent(1),
dataType:'json',
success: function(json)
{
g_foo = json.foo;
console.log(g_foo);
}
});
$.ajax({
type: "POST",
url: "GeteT.php",
cache:false,
data:"id="+ encodeURIComponent(1),
dataType:'json',
success: function(json)
{
g_foo = json.foo;
}
});
console.log(g_foo);
现在我可以看到php文件返回的值
如果现在我使用这样的函数
$.ajax({
type: "POST",
url: "GeteT.php",
cache:false,
data:"id="+ encodeURIComponent(1),
dataType:'json',
success: function(json)
{
g_foo = json.foo;
console.log(g_foo);
}
});
$.ajax({
type: "POST",
url: "GeteT.php",
cache:false,
data:"id="+ encodeURIComponent(1),
dataType:'json',
success: function(json)
{
g_foo = json.foo;
}
});
console.log(g_foo);
现在我得到了错误未定义的g_foo
谢谢因为ajax是异步的,所以在调用
$.ajax()
请求时,无法确保g\u foo
可用,因此它在回调之外不可用
但是,您可以将
async:false
指定给该.ajax()
调用,但它很可能会阻止浏览器,试图等待请求,这是我认为您不希望发生的事情。由于ajax是异步的,因此无法确保只要您调用$.ajax()
request,因此它在回调之外不可用
但是,您可以为该
.ajax()
调用指定async:false
,但它很可能会阻止浏览器,试图等待请求,这是我认为您不希望发生的事情。在外部使用它有两种方法:
1) 使调用像这样同步(这不是最佳做法,因为浏览器必须等待调用才能继续流):
2) 成功调用一个函数,并使用从该函数返回的任何数据从那里继续流(这是最佳实践)
要在外部使用它,有两种方法: 1) 使调用像这样同步(这不是最佳做法,因为浏览器必须等待调用才能继续流): 2) 成功调用一个函数,并使用从该函数返回的任何数据从那里继续流(这是最佳实践)