javascript - jQuery AJAX 数据类型 : 'script' not working on firefox

标签 javascript jquery ruby-on-rails ajax firefox

我的 jQuery 表单有以下代码:

$('form.ajax_form').on('submit', function(){
    event.preventDefault();
    var form_errors_space = $(this).find('.ajax_form_errors:first');
    $.ajax({
      type: "POST",
      dataType: 'script',
      url: $(this).attr('action'), 
      data: $(this).serialize(),
      // show success response from server.
      success: function(data, status, jqXHR) {
        console.log(data);
        console.log(status);
        console.log(jqXHR);
      },
      // show error response from the server.
      error: function(data, status, error_message) {
       // error handeling here
      }
    });
  });

代码适用于 chrome 和 safari。问题在于 Firefox,它将 AJAX 请求作为“HTML”数据类型而不是 JS/脚本发送。任何想法?

注意:我在 Ruby on Rails 4、Ruby 2.1.1 上执行此操作,由于项目特定原因,我无法使用默认的 remote: true 选项。

火狐版本:30.0

**更新:** 我也尝试覆盖内容类型和 MIME 类型,但也不起作用。

  ...
  data: $(this).serialize(),
  contentType: 'application/javascript',
  accepts: 'text/script',
  beforeSend: function( xhr ) {
    xhr.overrideMimeType( "application/script; charset=x-user-defined" );
  },
  .....

最佳答案

将代码更改为如下所示:

$('form.ajax_form').on('submit', function(e){
  e.preventDefault();

而不是:

$('form.ajax_form').on('submit', function(){
    event.preventDefault();

更多information

关于javascript - jQuery AJAX 数据类型 : 'script' not working on firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24278448/

相关文章:

Javascript Promise 与 jQuery Deferred

jquery - Jquery Mobile 中的简单表单提交

ruby-on-rails - rails : prepend_before_action in superclass

ruby-on-rails - ASP.NET MVC 开发人员真的应该学习 Ruby on Rails 吗?

javascript - Firebase Cloud Firestore 查询找不到我的文档

javascript - 将 Ember.js 与 DDP/Meteor 后端结合使用

javascript - JavaScript 中的 POST 请求问题

ruby-on-rails - 无法让 mongoid 与 Rails 4 一起工作

javascript - 2 小时后开始新 Activity

javascript - 连接到我的 Visual Studio Online API 返回 HTTP 302