2012-07-30 146 views
0

我的jQuery .ajax()調用在Firefox中不起作用,但它在Chrome中工作。下面是Ajax調用:

$.ajax({ 
     url: '/forms/remove_photo/' + temp, 
     complete: function() { 
      $('#photo').remove(); 
     } 
    }); 

然而,在firefox「/表格/ remove_photo /」(這是一個PHP函數)不會被調用,但功能齊全仍在執行。在螢火蟲中沒有出現parseErrors或語法錯誤。在chrome中,函數被調用併成功運行。

有沒有人遇到過這個問題?任何幫助將不勝感激。謝謝!

+1

你清除了瀏覽器緩存並嘗試了嗎? – Shyju 2012-07-30 16:50:03

回答

3

使用success,而不是complete

$.ajax({ 
    url: '/forms/remove_photo/' + temp, 

    success: function (data) { 
    $('#photo').remove(); 
    } 
}); 
0
$.ajax({ 
    cache: 'false', // just to clear your cache 
    url: '/forms/remove_photo/' + temp, 
    success: function() { // this may be more appropriate 
     $('#photo').remove(); 
    } 
}); 
0

我已經在Firefox中遇到了麻煩$.ajax但它就像在Chrome瀏覽器的魅力,會發生什麼情況是,由於鉻處理JavaScript和Ajax更快,火狐似乎被留下讓你撓頭,你可以做的是使用Deferreds這樣你就可以用更多的控制來處理AJAX,這裏是一個例子:

$.ajax({ 
    url: '/forms/remove_photo/' + temp   
}).done(function(){ 
    $('#photo').remove(); 
}); 

我建議你對Deferreds對象做一些研究,因爲它會幫助你很多

+0

被傳遞的信息用於組織回調消息隊列,與瀏覽器處理消息的速度相比,速度更低於服務器響應時間。延期是偉大的,但不是你的答案的原因。 – 2012-07-30 16:56:50

+0

是的,但就在上週我創建了一個運行在本地主機服務器上的web應用程序,並且firefox給了我麻煩,所以我全部使用了Deferreds – 2012-07-30 16:58:08