Angular5 + signalr客户端抛出"语法错误" JS错误

时间:2017-11-23 15:36:11

标签: angular signalr signalr.client angular5

我对Angular很新,请执行可能愚蠢的问题。

我尝试在localhost:5000上托管一个asp.net Kestrel服务器,它将为进度报告提供SignalR服务。 我使用Angular 5创建的网站应该连接到此网站(网站将通过localhost:4200调用,或者只打开文件://.....etc../index.html)。

我已经通过NPM安装了@ aspnet / signalr-client软件包。我没有对我的项目进行任何其他手动修改(没有polyfill或其他任何可能的修改)。

然后我编辑了我的主要组件.TS以包含

import { HubConnection } from '@aspnet/signalr-client';

到目前为止仍然可以正常工作。但后来我添加了一个私有变量

private _hubConnection: HubConnection;

在ngOnInit()函数中,我正在调用

    this._hubConnection = new HubConnection('/progress');

现在,访问该网站将在Internet Explorer 11中引发错误,即错误:语法错误。如果我正确地读取调试器,它似乎在一些代码中的signalr-client / dist / src / HttpContext.js中

eval("\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) {
... etc ...

我完全无能为力。我是否需要对我的项目进行任何其他手动修改,包括任何其他文件等? 难道它无法连接到我的SignalR进度服务器,因此抛出这个奇怪的错误或某些东西?

由于

2 个答案:

答案 0 :(得分:1)

您在两个不同的应用上托管您的应用和信号R,因此您必须指定signalR应用的绝对网址。

 this._hubConnection = new HubConnection('http://localhost:5000/signalr/progress');

您的网络应用的端口号与您的signalR应用不同,请不要忘记允许使用CORS,因为Chrome和Firefox会出现跨域错误。

答案 1 :(得分:1)

啊,好像这是标准软件包与IE11的不兼容,请参阅

https://github.com/aspnet/SignalR/issues/777

我试图通过

来规避这个问题
import { HubConnection } from '@aspnet/signalr-client/dist/browser/signalr-clientES5-1.0.0-alpha2-final.js';