Angular 如何在RxJs Observable中捕获失败和取消的请求?
从一段时间以来,我注意到我有一些XHR没有HTTP状态,但有取消或失败状态 它的末端是镀铬的。在Firefox上,我没有做到这一点 我的应用程序与Angular 4和RxJs 5配合使用 是否有任何解决方案可以帮助我抓住“这个错误”。我称之为“错误”,但实际上并没有错误,因为如果有,我可以很容易地抓住它们 在RxJs中,当我使用catch时,它不会触发,也不会最终触发(或者在订阅结束后触发)。Angular 如何在RxJs Observable中捕获失败和取消的请求?,angular,rxjs,Angular,Rxjs,从一段时间以来,我注意到我有一些XHR没有HTTP状态,但有取消或失败状态 它的末端是镀铬的。在Firefox上,我没有做到这一点 我的应用程序与Angular 4和RxJs 5配合使用 是否有任何解决方案可以帮助我抓住“这个错误”。我称之为“错误”,但实际上并没有错误,因为如果有,我可以很容易地抓住它们 在RxJs中,当我使用catch时,它不会触发,也不会最终触发(或者在订阅结束后触发)。 我也尝试过forkJoin、zip或concat、flatMap或switchMap之类的东西,但在任
我也尝试过forkJoin、zip或concat、flatMap或switchMap之类的东西,但在任何情况下似乎都不起作用。我不确定取消的请求是否会触发错误状态,但您也可以向可观察链添加超时,这将在最后触发错误
http.get(..).timeout(2000).catch()
我不确定取消的请求是否会触发错误状态,但您也可以向可观察链添加一个超时,该超时将在最后触发错误
http.get(..).timeout(2000).catch()
正如您在评论中提到的,当您在查看页面(即.html)上显示这些内容时,当您面临XSS问题时,不会触发捕获。我认为您需要使用DomSanitizer DomSanitizer通过清理值以确保在不同的DOM上下文中安全使用,帮助防止跨站点脚本安全漏洞(xs)() 在
组件.ts
文件中使用
从'@angular/platform browser'导入{domsanizer}代码>
this.yourVariable = domsanitizer.bypassSecurityTrustHtml('<p>stack Overflow</p>');
this.yourVariable=domsanizer.bypassSecurityTrustHtml(“堆栈溢出”);
并在视图中使用变量
,如下所示
这不会让你在chrome上出错。正如你在评论中提到的,当你在查看页面(即.html)上显示这些内容时,当你面临XSS问题时,不会触发捕获。我认为你需要使用Domsanizer DomSanitizer通过清理值以确保在不同的DOM上下文中安全使用,帮助防止跨站点脚本安全漏洞(xs)() 在
组件.ts
文件中使用
从'@angular/platform browser'导入{domsanizer}代码>
this.yourVariable = domsanitizer.bypassSecurityTrustHtml('<p>stack Overflow</p>');
this.yourVariable=domsanizer.bypassSecurityTrustHtml(“堆栈溢出”);
并在视图中使用变量
,如下所示
这不会让你在chrome上出错。你在视图中的某个地方使用[innerHTML]吗?你能分享错误的截图和服务cal的片段吗?我使用的是innerHtml,但不是直接为什么http请求。我为xhr提供了一整套服务。您是否在视图中的某个位置使用[innerHTML]?你能分享错误的截图和服务cal的片段吗?我使用的是innerHtml,但不是直接为什么http请求。我有一个专门用于xhr的完整服务。取消的http请求不会触发一个有点奇怪的错误。取消的http请求不会触发一个有点奇怪的错误。