微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有重定向到自定义 url 方案的 iOS React Native fetch 失败,并显示“网络请求失败”错误

如何解决带有重定向到自定义 url 方案的 iOS React Native fetch 失败,并显示“网络请求失败”错误

在我当前的 React Native 项目中,我们在 oidc 之上构建了身份验证流程。 它在执行用户身份验证时使用多个重定向。 这些重定向是针对其中包含一些身份验证数据的 url 进行的。 这是一些存根示例:

fetch('https://my-auth-server.domain/address') -> 302 ('myappid://action?user=data') 

如您所见,服务器将初始请求重定向自定义 url 方案。还有一个问题: (我想)由于这个自定义 url 方案,我没有收到响应,但只有“不支持的 URL”XHR 错误。没有标题,我可以从中解析重定向位置,什么都没有。只是这个错误文本。

是否真的可以通过 React Native fetch / XHR 处理自定义 url 方案重定向

环境:

  • React Native 0.64
  • iOS 12.1-14.4
  • React 导航 v4
  • XCode 12.5

我已经做过的:

  • 我在应用中设置了深层链接并设置了 URL Schemes。
  • 我已将 Allow Arbitrary Loads 设置为 true 并配置了域。
  • 我尝试使用纯 XHR 请求、axios、fetch - 结果始终相同。
  • 在模拟器的 Safari 和桌面浏览器中,初始 url 可以正常打开。
  • React Flipper 还显示了来自此请求的所有数据的响应! (状态:302,所有标头都已就位等)

也没有办法拦截这个重定向,因为 React Native 的 fetch 不支持 { redirect: "manual" } 选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。