【问题标题】:$.ajax() not working in firefox$.ajax() 在 Firefox 中不起作用
【发布时间】:2012-07-30 16:48:14
【问题描述】:

我的一个 jQuery .ajax() 调用在 firefox 中不起作用,但在 Chrome 中起作用。这是ajax调用:

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

但是,在 firefox '/forms/remove_photo/' (这是一个 php 函数)中没有被调用,但完整的函数仍在执行。 firebug 中没有出现 parseErrors 或语法错误。在 chrome 中,该函数被调用并成功运行。

以前有人遇到过这个问题吗?任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 您清除浏览器缓存并尝试了吗?

标签: ajax firefox google-chrome jquery


【解决方案1】:

使用success 代替complete

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

  success: function (data) {
    $('#photo').remove();
  }
});

【讨论】:

    【解决方案2】:
    $.ajax({
        cache: 'false', // just to clear your cache
        url: '/forms/remove_photo/' + temp,
        success: function() {  // this may be more appropriate
            $('#photo').remove();
        }
    });
    

    【讨论】:

      【解决方案3】:

      我在 firefox 中遇到了$.ajax 的问题,但它在 chrome 中就像一个魅力,发生了什么是因为 chrome 处理 javascript 和 ajax 更快,firefox 似乎被抛在后面,让你摸不着头脑,你能做什么就是使用Deferreds,这样你就可以用更多的控制来处理ajax,这里是一个例子:

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

      我建议你对 Deferreds 对象做一些研究,因为它会对你有很大帮助

      【讨论】:

      • Deffereds 用于组织回调队列,速度更多地取决于服务器响应时间,而不是浏览器处理它的速度。延期很好,但不是因为你的答案。
      • 是的,但就在上周,我正在创建一个在 localhost 服务器上运行的 Web 应用程序,而 firefox 给我带来了麻烦,所以我使用 Deferreds 解决了所有问题
      猜你喜欢
      • 1970-01-01
      • 2010-12-02
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多