2012-08-03 23 views
1

雖然我已經閱讀了幾個類似於這個帖子,我似乎無法得到它的工作。我有下面的按鈕被按下時調用的Ajax。阿賈克斯成功回調只適用於Chrome

function refreshTab(){ 
      theObject = { 
       getArray: function(callback) { 

        $.ajax({ 
         url: 'urlGoeshere', 
         data: "", 
         type: "GET", 
         dataType: 'json', 
         success: function(data)   
         {               
          callback.call(this,data); 
          alert("testing"); 
         }, 
         error: function (err) 
         { 
          alert(err.responseText) 
         } 
        }); 
       } 
      } 
      theObject.getArray(function(data) { 
       javascript: console.log(data); 
       for(i=0;i<data.length;i++){ 
        auditHolder = auditHolder + "<tr class='gradeU'><br><td>" + data[i].Description + "</td><td style='width:100px' align='center'>" + data[i].CreatedOn + "</td><br></tr>" 
        // $('#container tbody').append("<tr class='gradeU'><br><td>" + data[i].Description + "</td><td style='width:100px' align='center'>" + data[i].CreatedOn + "</td><br></tr>"); 

       } 
       $('#container tbody').html(auditHolder); 

      });           
     } 

上述代碼在Chrome中完美工作,但在FF或IE中無效。目前使用jQuery 1.4.4。

通過警報(「測試」);我發現,似乎打破了這行代碼是

 callback.call(this,data); 

把一個警告框,它工作在但只有在Chrome瀏覽器中的所有之前做的警告框火災後回調。

非常感謝您的幫助。

+0

Firebug中的任何錯誤? – 2012-08-03 11:08:10

+0

嗨保羅,沒有錯誤是由螢火蟲給出的。 – Chaney 2012-08-03 11:13:40

+0

你可以試着通過'callback(data)'來調用回調函數嗎? – Claudix 2012-08-03 11:28:13

回答

0

我剛剛遇到同樣的問題,並發現舊版本的Firefox,jQuery和Firebug(!!)的組合是造成此問題的原因。另請參閱:

http://bugs.jquery.com/ticket/6349