Safari 未能使用 Angular 的 HttpClient 发送有效的 GET 请求

Posted

技术标签:

【中文标题】Safari 未能使用 Angular 的 HttpClient 发送有效的 GET 请求【英文标题】:Safari failing to send valid GET request using Angular's HttpClient 【发布时间】:2020-03-11 19:37:14 【问题描述】:

在 Safari 中发送 GET 请求时,Safari 无法向服务器发送有效请求。事实上,它甚至没有到达服务器(我已经在后端检查过这个)。它也未能提供除两个请求标头之外的所有请求标头,并且响应为空(这导致 safari 在控制台中记录 kcferrordomaincfnetwork 错误 303)。我在下面附上了一些截图以及一些额外的发现。任何人都可以提供任何见解吗?

Screenshot of the request when it fails Screenshot of the request when it passes 问题只能在 ios 设备上的 Safari 中重现。 以前在 MacBook 上发生过问题。清除网站数据一次后,我们再也没有看到过这个问题 呼叫间歇性失败 在产品详情调用前设置断点并在控制台手动调用时,第一次失败,第二次通过。 有时不是产品详细信息调用失败(尽管通常是这样) 有时是创建应用程序或获取产品图片调用失败。 清除网站数据后问题似乎消失了,但在一次成功会话后又出现了。 调用失败时,我们在控制台中收到以下错误:kcferrordomaincfnetwork error 303 会话存储为空,问题仍然存在 没有发生异常(我在 Safari 中启用了“中断所有异常”)

【问题讨论】:

您解决了吗?我有共享组件,它可以在一个页面上运行,而不能在另一个页面上运行,并且只能在 iOS 设备上运行 【参考方案1】:

尝试使用 --no-live-reload 选项运行 ng serve。我们看到了类似的行为,并且 WDS 可能一直在中断 HTTP 调用。到目前为止,这已经解决了我们的问题。

【讨论】:

以上是关于Safari 未能使用 Angular 的 HttpClient 发送有效的 GET 请求的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 Universal ng2-bootstrap 不工作 Safari

仅在第一次加载 Angular 网页时使用 Safari 接收 401 状态

访问控制不接受 Angular $resource 调用允许 Safari 与 Chrome 接受

Html 视频标签无法在我的 Angular 应用程序中的 Safari 中播放

Angular mobileQuery.addEventListener 不是 safari 中的函数,如何修复?

Angular GET 请求错误,但仅在 Safari iOS 上