Angular Universal BUT的SSR期间JSON.stringify引发错误,可在locahost上运行“ TypeError:将圆形结构转换为JSON”

时间:2019-07-16 22:03:37

标签: angular angular-universal

我的角度分量中有以下内容

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

2 个答案:

答案 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证书无效。