微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在它之外使用ajax respone是否可行?

有没有在$.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] 举报,一经查实,本站将立刻删除。

相关推荐