簡體   English   中英

ajax回調JSON對象返回未定義

[英]ajax call back JSON object returns undefined

我看過很多關於該主題的文章,並嘗試了幾種解決方案,但我似乎做得不好。

最后一次嘗試

function checkzip(x){  

       $.ajax({
       type:'POST',
       url:'zipcheck.php',
       data:{zip: x},
       async: false
    }).done(function(r){
        rates(r);
    });
}

function rates(r){
    alert (r);
    if (r !== 'none'){
    m = JSON.parse(r);
    return m;
    }
    else {
        return false;
    }
}

返回的json是{“ rateA”:“ 125”,“ rateB”:“ 80”,“ rateC”:“ 150”,“ rateD”:“ 130”}

所以我希望能夠:

new_rate = checkzip('77090');

alert (new_rate.rateA);

但是我對於返回值不確定

我嘗試成功傳遞函數:AND .done(),我嘗試直接從兩者返回它,而不是在設置async:false時傳遞給單獨的函數。 我試過將ajax調用和一個函數一起放在zipcheck()函數中,然后從那里調用它。 我缺少從ajax創建對象或使用異步函數的思路。

您認為問題與異步有關是正確的。 基本上,您需要在rates()函數中對響應進行任何處理,而不是讓checkzip()返回值。 如果將alert()調用放入rates()方法內,則應看到一些輸出。

function checkzip(x) {  
       $.ajax({
       type:'POST',
       url:'zipcheck.php',
       data:{zip: x},
       async: false
    }).done(function (r) {
        rates(r);
    });
}

function rates(r) {
    alert(r);
    if (r !== 'none') {
        var m = JSON.parse(r);
        // Do something with m now.
        alert(m.rateA);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM