2012-09-17 42 views
0

我花了一段時間試圖瞭解爲什麼我的jQuery.ajax調用沒有調用回調函數,儘管我可以在網絡上看到POST請求成功。在IE9中,當async參數指定爲null時,jQuery.ajax不會調用回調

我的代碼看起來是這樣的:

var invokeService = function (url, action, parameters, callback, async, errorFn) { 
    var jqXhr = $.ajax({ 
     async:async, 
     type:'POST', 
     cache:false, 
     url:url + '?action=' + action, 
     contentType:'application/json; charset=utf-8', 
     data:$.toJSON(parameters), 
     done:callback, 
     fail:errorFn 
    }); 
}; 

,我在呼喚它想:

invokeService(serviceUrl, 'ActionFn', {param:'one'}, successFn, null, failFn); 

我無法弄清楚,爲什麼我的回調是越來越對其他瀏覽器調用,但不IE9。

我再次發佈,我發現這樣我就可以找到它的答案,如果它在未來發生的事情,因爲我無法在這裏找到答案......

回答

1

我發現那是什麼的$.ajaxasync參數不喜歡在IE9中傳入的空值。

我改變了我的代碼,以明確使用truefalseasync參數並開始工作:

var invokeService = function (url, action, parameters, callback, errorFn) { 
    var jqXhr = $.ajax({ 
     async:true, //<--- In my case I could just hard code it, probably even remove this param. 
     type:'POST', 
     cache:false, 
     url:url + '?action=' + action, 
     contentType:'application/json; charset=utf-8', 
     data:$.toJSON(parameters), 
     done:callback, 
     fail:errorFn 
    }); 
}; 
相關問題