我的角度分量中有以下内容
JSON.stringify({ "webSlug": slug });
在通过ng serve
服务应用程序时,但是在Universal尝试在节点应用程序上进行服务器端渲染时,在localhost上运行良好。服务器控制台显示以下错误...如何重写此错误或解决该错误?
ERROR { TypeError: Converting circular structure to JSON
0|amec | at JSON.stringify (<anonymous>)
0|amec | at readableObjectToString (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:669:63)
0|amec | at resolvePromise (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:831:69)
0|amec | at resolvePromise (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:788:17)
0|amec | at /home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:892:17
0|amec | at ZoneDelegate.invokeTask (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:423:31)
0|amec | at Object.onInvokeTask (/home/ec2-user/packages/core/src/zone/ng_zone.ts:262:25)
0|amec | at ZoneDelegate.invokeTask (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:422:60)
0|amec | at Zone.runTask (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:195:47)
0|amec | at drainMicroTaskQueue (/home/ec2-user/amec_compiled/node_modules/zone.js/dist/zone-node.js:601:35)
0|amec | rejection:
0|amec | HttpErrorResponse {
0|amec | headers: HttpHeaders { normalizedNames: Map {}, lazyUpdate: null, headers: Map {} },
0|amec | status: 0,
0|amec | statusText: 'Unknown Error',
0|amec | url: null,
0|amec | ok: false,
0|amec | name: 'HttpErrorResponse',
0|amec | message: 'Http failure response for (unknown url): 0 Unknown Error',
0|amec | error:
0|amec | ProgressEvent {
0|amec | type: 'error',
0|amec | target: [XMLHttpRequest],
0|amec | currentTarget
答案 0 :(得分:1)
我曾经遇到那个错误,原因实际上是由angular Universal发送的HTTP请求未成功。因此,将循环结构转换为json的部分具有误导性。
根据以下消息,我认为这对您来说也是一样
message: 'Http failure response for (unknown url): 0 Unknown Error',
确保angular Universal可以将请求发送到您的API或您正在调用的任何url。可能只是目标服务器的SSL证书无效(如果我没记错的话,那是我的问题)
答案 1 :(得分:0)
我有同样的问题。正如@David所说,此问题归因于本地生成的SSL证书。当您在浏览器中运行时(本地服务),本地SSL证书已经受到信任,不会出现问题。但是对于SSR证书无效。