ReferenceError:运行我的angular 6通用应用程序时未定义XMLHttpRequest

时间:2018-10-19 12:04:03

标签: angular firebase angularfire2

我已经创建了一个依赖Angularfire2的Angular 6项目。 我正在使用Firestore和Firebase存储。 我已经将我的应用程序转换为通用角度,当我运行server.js时,它说在localhost:4000上监听,但是一旦我用localhost:4200打开浏览器,终端就会显示以下错误: >

ReferenceError: XMLHttpRequest is not defined

here is the snippet of the error

4 个答案:

答案 0 :(得分:5)

安装这些依赖项:

npm install --save-dev ws xmlhttprequest

然后将其添加到您的server.ts文件中

(global as any).WebSocket = require('ws');
(global as any).XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

来源:

答案 1 :(得分:0)

您必须安装@angular/platform-server并导入ServerModule。这样就提供了DOM,XMLHttpRequest和其他不依赖浏览器的低级功能的服务器实现。

有关更多信息,请参见the universal guide

答案 2 :(得分:0)

为了以后使用xmlhttprequest进行参考,我没有用,所以我不得不像这样使用xhr2

  1. npm install ws xhr2 bufferutil utf-8-validate -D
  2. 然后将wsxhr2都添加到server.ts

(global as any).WebSocket = require('ws');
(global as any).XMLHttpRequest = require('xhr2');

答案 3 :(得分:0)

如果有人遇到相同的问题,对我来说,解决方案是确保我没有在子模块中导入HttpClientModule。一旦将其导入到主AppModule中,错误就会消失。

这是给我解决方案的链接 https://www.thecodecampus.de/blog/angular-universal-xmlhttprequest-not-defined-httpclient/