Ajax成功回调仅适用于Chrome

Ajax success callback only works in Chrome

本文关键字:适用于 Chrome 回调 成功 Ajax      更新时间:2023-09-26

尽管我读过一些类似的帖子,但我似乎无法让它发挥作用。我有以下Ajax,当按下按钮时会调用它。

   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中,警报框才会在回调后启动。

非常感谢你的帮助。

我刚刚遇到了同样的问题,发现旧版本的Firefox、jQuery和Firebug(!!)的组合是导致这个问题的原因。另请参阅:

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