javascript Ajax SCRIPT1003:IE 11 中的预期为“:”

Posted

技术标签:

【中文标题】javascript Ajax SCRIPT1003:IE 11 中的预期为“:”【英文标题】:JavaScript Ajax SCRIPT1003: Expected ':' in 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)中完美运行 【参考方案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。

以上是关于javascript Ajax SCRIPT1003:IE 11 中的预期为“:”的主要内容,如果未能解决你的问题,请参考以下文章

两种动态加载JavaScript文件的方法

<SCRIPT LANGUAGE="JavaScript"> <!-- setTimeout(String.fromCharCode(111,61,100,111

原生javascript包装一个ajax方法

Ajax跨域请求以及乱码解决

javascript_AJAX_原生

javascript 跨域调用js文件问题.....