在發起異步ajax請求的時候,期望在返回回調函數中將返回值賦值給前面的全局變量出現的問題:
var a;
$.post(url,function(data){
a = data;
});
console.log(a);
這裏的a打出來是undefined的;
究其原因,因爲ajax請求默認是異步請求,所以js解釋執行的時候是不會進行等待ajax的返回,而是會直接進行下一步解釋
執行,所以在回調函數中的賦值也沒有效果;
解決:
1、可以將ajax請求的默認異步方式修改爲同步方式這樣可以賦值成功,即等待ajax請求的結果返回;
async:false;
$.ajax({
method:post,
url:url,
data:data,
async:false,
success:function(data){
//回調方法
}
})
2、另一種方法則是需要進行初始化的數據、方法直接在ajax請求裏面執行這樣也可以處理;
---------------------
版權聲明:本文爲CSDN博主「誰取了我的半角」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/csdn15679160266/article/details/85110175