【问题标题】:JavaScript Ajax SCRIPT1003: Expected ':' in IE 11javascript Ajax SCRIPT1003:IE 11 中的预期为“:”
【发布时间】:2016-06-18 22:14:09
【问题描述】:
 var url="tabla.php";
 $.ajax({
    type: "POST",
    url:url,
    data:{place,names,repor},
    success: function(datos){       
    $('#tabla').html(datos);
  }

此代码在 Chrome 中有效,但在 IE 11 中在第 5 行返回错误 SCRIPT1003: Expected ':'。我非常感谢任何帮助。

注意:placenames是之前定义的数组,repor也是之前定义的变量。

【问题讨论】:

  • data:{place,names,repor} 不是有效的 js 对象。那应该是一个数组吗? IE。数据:[地点,名称,报告]?
  • 如果它在 chrome 中工作,我会感到非常惊讶。语法不正确。
  • 您仍然需要定义将在您传递的对象中保存该值的属性的名称。 data:{place: place, names: names, repor: repor}
  • @Rooster 和 ShamSUP,你们可能想先测试一下代码,然后再告诉他出了什么问题。在您的控制台中弹出({window, document}) 并告诉我您是否遇到错误。 :P ES2015 FTW!
  • 感谢 ShamSUP,您的推荐在 IE 11(以及 Chrome)中完美运行

标签: javascript ajax internet-explorer cross-browser internet-explorer-11


【解决方案1】:

通常 javascript 中的对象被初始化为键值对,因此数据可能应该像这样初始化

data:{ place : place, names : names, report : report }

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

在 ECMAScript 2015 中,您似乎可以在某些情况下省略关键部分,这就是它适用于 chrome 的原因。

【讨论】:

  • 根据 OP 提供的信息,很难说这是有效还是无效。不过猜的不错。
【解决方案2】:

我在 IE 11 中也遇到了 SCRIPT1003: Expected ':' 错误(我的代码在 Chrome 和 FireFox 中运行良好)。如果有人使用 Knockoutjs 并遇到这种情况,请在视图模型中声明函数时注意语法:

var viewModel = {
    property1: "",
    functionWorksInAllBrowsers: function (arg1, arg2) {
        // ...
    },
    functionThrowsErrorInInternetExplorer11(arg1, arg2) { 
        //...
    }
};

【讨论】:

  • 不仅是淘汰赛,IE 11 也不支持函数的简写。因此,您需要按照此答案中的建议使用或使用 babel polyfill。
猜你喜欢
  • 2020-01-26
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多