本篇文章主要是對jquery ajax異步調用方法中不能給全局變量賦值的原因及解決方法進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
在調用一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全局變量賦值,可是我們發現程序執行完後並沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的異步調用async:true(默認情況),如: 代碼如下: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: "GetComments.aspx", data: "type=getText&commentText=" + text, cache: false, async: false, success: function (data) { result = data; } }) return result; 以上方法是ajax的同步調用,只有在獲取到了data值並賦值給result以後才會返回result完成該方法的調用。若設為async:true, 則會未等到獲取data值就已經返回了result。 另一個解決辦法就是將你的代碼直接寫到success方法裡。(根據你的業務並不是所有的都可以直接寫到success裡的)。 注意:如果設定為 async: false,就失去 ajax異步的優點了哦。