没有;
$.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");当然,唯一可以确保
response实际填充值的上下文是在
$.postline之后提供的回调函数中
response =data_response;。如果要在脚本的任何其他阶段使用它,则必须首先检查其值;像这样的东西:
if (response !== null){ console.log(response);}请注意,如果您在
$.post调用后直接输入该代码,它将不会执行任何操作。仅当它在POST请求完成后在其他异步回调(可能是某种UI交互事件)中执行时才有用。



