我已经创建了一个依赖Angularfire2的Angular 6项目。
我正在使用Firestore和Firebase存储。
我已经将我的应用程序转换为通用角度,当我运行server.js
时,它说在localhost:4000
上监听,但是一旦我用localhost:4200
打开浏览器,终端就会显示以下错误: >
ReferenceError: XMLHttpRequest is not defined
答案 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
:
npm install ws xhr2 bufferutil utf-8-validate -D
ws
和xhr2
都添加到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/