[英]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.