jQuery ajax对象语法错误

jQuery ajax对象语法错误,jquery,datatables,Jquery,Datatables,我用它来处理一个包含大量数据的大表。我正在尝试添加一些自定义语言,但在处理语言文件时不断出现对象语法错误:http://domaintest.com/[对象%20对象] 如果我对ajax调用进行注释,则没有错误 此错误在此处的控制台中可见: 守则: function runDatatable() { // Datatable language switcher with custom language mods to overwrite the defaults function get

我用它来处理一个包含大量数据的大表。我正在尝试添加一些自定义语言,但在处理语言文件时不断出现对象语法错误:
http://domaintest.com/[对象%20对象]

如果我对ajax调用进行注释,则没有错误

此错误在此处的控制台中可见:

守则:

function runDatatable() {
  // Datatable language switcher with custom language mods to overwrite the defaults
  function getLanguage() {
    var $langMap = {
      en: {
        path: 'English',
        mods: {
          sLengthMenu: 'Display _MENU_ persons',
          sInfo: 'Showing _START_ to _END_ of _TOTAL_ persons',
          sInfoEmpty: 'Showin 0 to 0 out of 0 persons'
        }
      },
      es: {
        path: 'Spanish',
        mods: {
          sInfo: "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ personas",
          sInfoEmpty: "Mostrando personas del 0 al 0 de un total de 0 personas"
        }
      }
    };
    var $lang = $('html').attr('lang');
    // Fallback
    if (!$langMap[$lang]) {
      $lang = 'en';
    }
    var $result = null;
    var path = '//cdn.datatables.net/plug-ins/1.10.13/i18n/';
    var url = path + $langMap[$lang].path + '.json';
    console.log(url);
    $.ajax({
      async: false,
      url: url,
      success: function(obj) {
        $result = $.extend({}, obj, $langMap[$lang].mods);
        console.log($result);
      },
      error: function(xhr, status, error) {
        console.log(xhr.responseText);
      }
    });
    return $result;
  }

  // Build Datatable
  $('#datatable').DataTable({
    language: {
      url: getLanguage()
    },
    ordering: true,
    autoWidth: false,
    fixedHeader: true,
    responsive: true
  });
}

我在这里遗漏了什么?

您应该以以下方式扩展对象:

   $tmp = $.extend({}, obj, $langMap[$lang].mods);
   $langMap[$lang].mods = $tmp;
您正在请求url:

 language: {
      url: getLanguage()
    },
但是您返回
$langMap

因此,您应该这样做(不使用ajax调用):

如果要覆盖标准文件,请选择最后一个:

language:getLanguage()
返回$langMap[$lang].mods


您面临的错误是什么?在检查浏览器控制台时,我看到的错误只是404错误。是的,这就是错误<代码>[object%20Object]因此,语言功能不起作用。生产中的错误是相同的。好的,那么我应该在哪里替换它?是的,它正确地更改了语言文件,但现在它没有使用我的本地更改(mods)扩展它…@Meek再次:)这太完美了。我想我今天学到了一些新东西。非常感谢。我很高兴能帮助你:)
return path + $langMap[$lang].path + '.json';