IE11 - 未处理的承诺拒绝:语法错误

时间:2017-03-06 16:29:09

标签: angular typescript internet-explorer-11 es6-promise

我正在开发一个Angular 2应用程序,并且第一次添加了一些async/await功能。一切都在本地工作正常,但一旦它部署在我的测试服务器上,我在IE11收到此错误(请参阅问题的底部以获取完整的浏览器堆栈跟踪):

  

未处理的承诺拒绝:语法错误

加载Angular2应用程序时发生错误,而不是在方法执行时发生。错误指向此方法(它恰好是此组件中唯一的方法)。

我-component.ts

async logoff(event: { preventDefault: () => void }) {
    event.preventDefault();
    await this.authService.logoff();
    window.location.href = '/Account/Login';
}

这是我第一次介绍async/await所以我知道这是失败的重点。

测试步骤

  • 我使用Visual Studio将发布版本发布到我的本地IIS。 Spces是:
    • Windows 10(x64)
    • IIS
  • 然后我在我发布的目录中运行安装我需要的生产环境的npm包

    npm i --production
    
  • 我打开IE11浏览器并从IIS运行应用程序,一切正常,没有错误

  • 然后我制作了我已发布目录的完整副本并将其复制到我的测试服务器。测试服务器spces是:
    • Windows 2012 R2标准版
    • IIS
  • 然后我使用我之前使用的Dev机器上的相同IE11浏览器实例浏览到该站点并收到上述错误。

那么为什么当我从我的测试服务器运行它时失败并且当我从本地机器运行它时没有失败?是否需要安装所需的Node或NPM模块/包全局的垫片可以从IE11正常工作,还是有其他问题?我在这里不知所措。

配置

如果我可以添加任何内容,请告知我们,我会更新问题。

tsconfig.js

根据recommended configuration

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "removeComments": false,
    "noImplicitAny": false,
    "suppressImplicitAnyIndexErrors": true
  },
  "compileOnSave": true
}

的package.json

  "dependencies": {
    "@angular/common": "2.4.8",
    "@angular/compiler": "2.4.8",
    "@angular/core": "2.4.8",
    "@angular/forms": "2.4.8",
    "@angular/http": "2.4.8",
    "@angular/platform-browser": "2.4.8",
    "@angular/platform-browser-dynamic": "2.4.8",
    "@angular/router": "3.4.8",
    "core-js": "~2.4.1",
    "jquery": "~3.1.1",
    "lodash": "^4.17.4",
    "reflect-metadata": "^0.1.9",
    "rxjs": "5.2.0",
    "systemjs": "0.20.9",
    "zone.js": "^0.7.7"
  }

Index.html 仅限脚本

<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.0.1/Rx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.7.7/zone.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reflect-metadata/0.1.8/Reflect.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js"></script>
<script>
    System.import('system-config.js')
        .then(function() {
            System.import('main');
        })
        .catch(console.error.bind(console));
</script>

完成客户端堆栈跟踪

Unhandled Promise rejection: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main ; Zone: <root> ; Task: Promise.then ; Value: Error: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/a
   "Unhandled Promise rejection:"
   "Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main"
   "; Zone:"
   "<root>"
   "; Task:"
   "Promise.then"
   "; Value:"
   {
      [functions]: ,
      __proto__: { },
      __zone_symbol__error: { },
      __zone_symbol__message: "Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main",
      __zone_symbol__number: undefined,
      description: "Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main",
      message: "Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main",
      name: "Error",
      number: undefined,
      originalErr: { },
      originalStack: undefined,
      stack: "SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (",
      Symbol()_n.tcfyoms51l2: undefined,
      Symbol()_o.tcfyoms51l2: undefined,
      Symbol()_p.tcfyoms51l2: undefined,
      Symbol()_q.tcfyoms51l2: undefined,
      Symbol()_r.tcfyoms51l2: undefined,
      Symbol()_s.tcfyoms51l2: undefined,
      Symbol()_t.tcfyoms51l2: undefined,
      Symbol()_u.tcfyoms51l2: undefined,
      Symbol(rxSubscriber)_m.tcfyoms51l2: undefined,
      zoneAwareStack: undefined
   }
   "SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x ("

Error: Uncaught (in promise): Error: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main
SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/sys
   {
      [functions]: ,
      __proto__: { },
      __zone_symbol__error: { },
      __zone_symbol__number: undefined,
      description: "Uncaught (in promise): Error: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main
SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0",
      message: "Uncaught (in promise): Error: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main
SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0",
      name: "Error",
      number: undefined,
      originalStack: undefined,
      promise: { },
      rejection: { },
      stack: "Error: Uncaught (in promise): Error: Syntax error
  Evaluating http://mytest.server.domain/Scripts/my-component.js
  Evaluating http://mytest.server.domain/Scripts/app.module.js
  Evaluating http://mytest.server.domain/Scripts/main.js
  Loading main
SyntaxError: Syntax error
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:25003)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:5:224)
   at j (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7593)
   at S (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:7059)
   at x (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6096)
   at Anonymous function (https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.9/system.js:4:6268)
   at Anonymous function (eval code:20:1)
   at Anonymous function (eval code:1:31)
   at eval code (eval code:1:2)
   at Pe (https://cdnjs.cloudflare.com/ajax/libs/sys",
      Symbol()_n.tcfyoms51l2: undefined,
      Symbol()_o.tcfyoms51l2: undefined,
      Symbol()_p.tcfyoms51l2: undefined,
      Symbol()_q.tcfyoms51l2: undefined,
      Symbol()_r.tcfyoms51l2: undefined,
      Symbol()_s.tcfyoms51l2: undefined,
      Symbol()_t.tcfyoms51l2: undefined,
      Symbol()_u.tcfyoms51l2: undefined,
      Symbol(rxSubscriber)_m.tcfyoms51l2: undefined,
      task: { },
      zone: { },
      zoneAwareStack: undefined
   }

1 个答案:

答案 0 :(得分:1)

检查发挥作用的各种缓存:IE和您的CDN;您可能正在加载旧的缓存副本