簡體   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