IE11中的JavaScript给我脚本错误1003

not*_*mer 5 html javascript ajax jquery internet-explorer-11

我有一个手风琴和一些JavaScript的网站.在Firefox中,一切正常,但在IE11中我得到了错误

SCRIPT1003:预期':'

我把它缩小到我的.js文件中的这段代码:

var nmArray = new Array();

function saveplayers() {
  var x;

  for (x=0;x<32;x++) {
    var y = "i"+eval(x+1);
    nmArray[x]=document.getElementById(y).value;
  }
  var request = $.ajax({
    type: "POST",
    url: "savep.php",
    data: ({ nmArray }),
    cache: false
  });
}
Run Code Online (Sandbox Code Playgroud)

错误抱怨在nmArray之后应该有一个冒号 ({ nmAray })

如果我取消此功能,我的网站将再次运行.为了调试我删除了我的HTML,我甚至没有调用这个函数.我只是包含了.js文件.

use*_*654 4

支持 ES6 的浏览器中的语法({nmArray}){nmArray: nmArray}. IE11 不支持此功能(基于您收到的错误),因此您必须将其重写为:

data: ({ nmArray: nmArray }),
Run Code Online (Sandbox Code Playgroud)

请参阅此处的示例:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#New_notations_in_ECMAScript_6

请注意,在这种情况下,您可以省略包装()

data: { nmArray: nmArray },
Run Code Online (Sandbox Code Playgroud)