Angular 4 Observable在IE11中不起作用

时间:2017-10-27 06:14:37

标签: angular angular-cli polyfills

根据调用其他服务的参数检查URL中的参数。它在Chrome / Mozilla / Edge中按预期工作,但在IE11中没有。它不断重定向到同一页面。

http://localhost/oauth/?code=xxxxxx

这是我的组件代码。

ngOnInit() {
this.sub = this.route.queryParams.subscribe(params => {
  if (params['code']) {
    this.loginProcess = 'Hold tight! Authentication in progress.';
    this.authenticationService.getOADAccessToken(params['code']).subscribe(function(res){
       // some code
    });
  else {
    // redirect to login page
  }

它甚至在调用getOADAccessToken服务调用之后获得了param代码值。但是在从服务调用返回之前,它会落到else部分并再次重新加载同一页面,获取参数代码并调用服务并重新加载。
service.ts

getOADAccessToken(token): Observable<any> {
    return this.http.post(environment.API + '/getAccessTokens',
        { code: token })
        .map((response: Response) => {
            const ADResult = response.json();
            return response.json();
        });
}

它在IE10 / 11以外的所有浏览器中工作。启用polyfill.ts中的所有polyfill。启用Intl
以下是版本细节:
enter image description here

1 个答案:

答案 0 :(得分:1)

您使用的是es6-shim吗?我有几乎类似的问题,我转向core.js而不是es6-shim。下面是从es6-shim切换到core.js的示例,如果你想尝试一下。

的package.json

//replace es6-shim
    "core-js": "2.5.1",

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.5.1/core.min.js"></script>