【问题标题】:Ajax success callback only works in ChromeAjax 成功回调仅适用于 Chrome
【发布时间】:2012-08-03 11:05:16
【问题描述】:

虽然我已经阅读了一些与此类似的帖子,但我似乎无法让它发挥作用。我有以下在按下按钮时调用的 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 中才会在回调之后触发警告框。

非常感谢您的帮助。

【问题讨论】:

  • 嗨,保罗,萤火虫没有给出错误。
  • 你可以尝试通过callback(data)来调用回调函数吗?
  • 你在 for 循环中哪里定义了i? (for(i=0;i&lt;data.length;i++))
  • 抱歉耽搁了,电脑死机了。那是我输入的代码中的一个错误。它应该是 for(var i;.... 而且这也没什么区别 Claudix。
  • 另外,控制台在 Firefox 中不是标准的。如果用户没有安装 Firebug,脚本将会失败。

标签: javascript internet-explorer firefox google-chrome jquery


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2023-03-08
    相关资源
    最近更新 更多