有没有在$.post()之外使用data_response的方法?
这是我使用的代码的一部分:
$.post('do.PHP', { OP: "news_search", category: cat_id },
function(data_response){
var response = data_response; //I need to access this variable outside of $.post()
}
}, "json");
console.log(response); //response is not defined, is what I get for Now
UPDATE
有没有办法在全球范围内提供这种响应?
解决方法:
没有; $.post异步执行,因此当您调用console.log时,AJAX请求仍在运行,尚未产生响应.这是回调函数的目的:提供在请求完成后运行的代码.如果将console.log移动到回调函数中,它应该工作:
$.post('do.PHP', { OP: "news_search", category: cat_id },
function(data_response){
var response = data_response; //I need to access this variable outside of $.post()
console.log(response);
}
}, "json");
更新:如果您希望响应数据全局可用,则可以在全局范围内声明变量,如下所示:
var response = null;
$.post('do.PHP', { OP: "news_search", category: cat_id },
function(data_response){
response = data_response;
console.log(response);
}
}, "json");
当然,您可以确定响应的唯一上下文
实际上已经填充了一个值是在提供的回调函数中
行响应后的$.post = data_response;.如果你想在它使用它
在脚本中的任何其他阶段,您将必须首先检查其值;
这样的事情:
if (response !== null)
{
console.log(response);
}
请注意,如果您直接说完,此代码将不会执行任何操作
$.post电话;只有在POST请求完成后执行,在其他一些异步回调(可能是某种类型的UI交互事件)中才会有用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。