繁体   English   中英

JQuery ajax 请求 - 全局变量

[英]JQuery ajax request - global variable

所以,我有这个代码:

$.post("contacts.php", 
    {zip: $("#zip").val()}, "json").done(function(data){
        var response = JSON.parse(data);
        $("#city").val(response[0].city);
        });}

它将邮政编码发布到服务器,服务器返回与邮政编码对应的城市名称。 现在的问题是,我想在 done 函数之外访问 response[0].city 。 问题是,我不能将其声明为全局。 我试图丢失 var,我读到它声明它是全局的,但没有。 还试图将它声明为我的脚本中的第一件事,在任何函数之外,仍然没有。 它无法访问。 我还尝试将一个完全不同的变量定义为全局变量,将响应变量传递给它以保存它。 还是不行。

我会使用$.ajax而不是$.post以便我可以使它与async: false同步,然后只需在$.ajax之前创建变量,如下所示:

var city;

$.ajax({
    type: "POST",
    url: "contacts.php",
    data: { zip: $("#zip").val() },
    success: function(data) {
        var response = JSON.parse(data);
        city = response[0].city;
    },
    // by setting async: false the code after the 
    // $.ajax will not execute until it has completed
    async: false
});

// some operation with the city variable

注意:截至最近,jQuery 和现代浏览器不推荐使用async: false 您应该找到一个不涉及使用async: false的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM