React Native跨域资源加载出错如何解决

本文主要为大家分享一篇react native 真机断点调试+跨域资源加载出错问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。

写在前面

闲来无事,折腾了一下React Native,相比之前,开发体验好了不少。但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解决,目测是RN新版本调试服务的bug。

遇到类似问题的同学应该不少,这里做下记录,有需要的可以参考下。

如何断点调试

首先,在真机上加载运行RN应用(过程略)。

然后,摇动手机,弹出开发菜单,选择“Debug JS Remotely”。

React Native跨域资源加载出错如何解决

chrome会自动打开调试界面,地址是 http://localhost:8081/debugger-ui/ 。打开控制台,找到想要调试的文件,加断点,搞定。

React Native跨域资源加载出错如何解决

问题:跨域资源加载出错

理想情况下,上述步骤后,就可以愉快地断点调试了。但实际情况并没有这么顺利,按照 官方指引 修改了host后,问题依然存在。

在控制台看到的错误信息如图所示,跨域资源加载出错。192.168.3.126 是本机内网的ip,而出错资源的域名是 192.168.3.126.xip.io。

React Native跨域资源加载出错如何解决

在未对RN有深入了解的情况下,想到两种思路,后文会分别讲述细节。

让加载出错的资源,跟调试页面变成同源的

让调试服务支持资源跨域加载

解决方法一:替换主机名

将localhost替换成192.168.3.126.xip.io,也就是说,我们通过http://192.168.3.126.xip.io:8081/debugger-ui/ 来访问调试界面。

调试界面正常访问,资源加载正常,done。

React Native跨域资源加载出错如何解决

192.168.3.126.xip.io 这个主机名看着有点奇怪,后文会进一步介绍背后的原理。

解决方法二:CORS

在github issue《CORS issue with JS Remote Debugging when using xip.io》里,有开发者反馈了同样的错误。

他是这样解决的:

找到node_modules/metro模块,修改Server/index.js、index.js.flow文件,在_processDeltaRequest方法里加上下面代码。

mres.setHeader("Access-Control-Allow-Origin", "*");

登录后复制

这个方法不推荐,不过如果急着调试的话也不妨试下。

192.168.3.126.xip.io是什么东东

看到这个主机名不少同学可能一脸懵逼,一个似乎不存在的主机名怎么可以访问成功。

在控制台下ping了一下返回的是 192.168.3.126 这个ip。

React Native跨域资源加载出错如何解决

其实很简单,xip.io是个特殊的域名,当你查询xxx.xip.io这个域名对应的ip地址时,它会直接返回xxx。

举例:笔者笔记本的内网ip地址是 192.168.3.126,当我 访问 192.168.3.126.xip.io,DNS查询返回的ip地址就是 192.168.3.126。

它的原理也很简单,xip.io 的持有者在公网自建了DNS解析服务,当用户发起 xxx.xip.io 的DNS查询时,它会直接把 xxx 返回。

写在后面

前面提到的跨域解决方案,其实都不尽如人意,如有更好的方案,请告诉笔者,谢谢。

相关推荐:

React Native 搭建开发环境详解

React Native 采用Fetch方式发送POST请求

实例详解React Native时间转换格式工具类

以上就是React Native跨域资源加载出错如何解决的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2790653.html

(0)
上一篇 2025年3月8日 18:59:33
下一篇 2025年3月8日 18:59:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • React Native地址挑选器功能实现方法

    本文主要为大家详细介绍了react native仿地址挑选器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 产品经理:“你明白吧,这里向右划可以出菜单,然后需要一个闪烁的动画,还有,我想这个tab可以拉下来,你懂…

    2025年3月8日
    200
  • React Native竖向轮播组件的封装详解

    本文主要介绍了react native 通告消息竖向轮播组件的封装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 本文实例为大家分享了React Native通告消息竖向轮播组件的封装代码,供大家参考,具体内容如下 …

    2025年3月8日
    200
  • store优化React组件的方法详解

    本文主要介绍了使用store来优化react组件的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 在使用 React 编写组件的时候,我们常常会碰到两个不同的组件之间需要共享状态情况,…

    编程技术 2025年3月8日
    200
  • 构建React组件最全方法

    我非常喜欢使用react,因为我觉得它最大优点就是足够简单。 在简单和容易之间还是存在区别 的,我的意思是react也很简单。当然你需要些时间来了解它,当你掌握其核心内容后,其他的事都是水到渠成的了。下文将介绍比较难的部分。 耦合&…

    编程技术 2025年3月8日
    200
  • React 和Webpack构建打包优化实例详解

    本文主要介绍了浅谈react + webpack 构建打包优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 使用 babel-react-optimize 对 React 代码进行优化 检…

    2025年3月8日
    200
  • React根据宽度自适应高度实例分享

    有时对于响应式布局,我们需要根据组件的宽度自适应高度。css无法实现这种动态变化,传统是用jquery实现。本文主要介绍了react根据宽度自适应高度的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希…

    2025年3月8日
    200
  • React利用相对于根目录进行引用组件实例详解

    本文主要给大家介绍了关于react如何使用相对于根目录进行引用组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧,希望能帮助到大家。 在对自己开发的组件中经常…

    编程技术 2025年3月8日
    200
  • React Native中RefreshContorl下拉刷新教程

    我们知道app中都有下拉加载,在react native中也有类似的控件,本文主要介绍了react native中的refreshcontorl下拉刷新使用,希望能帮助到大家。 一、属性方法 (1) onRefresh function 在…

    编程技术 2025年3月8日
    200
  • React实践Tree组件如何使用

    本文主要介绍了react实践之tree组件的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 实现功能 渲染数据 展开合并 使用 数据结构: const node = { title:…

    2025年3月8日
    200
  • React中组件间抽象实例讲解

    在组件构建中,通常有一类功能需要被不同的组件公用,此时就涉及抽象的概念,在react中我们主要了解mixin和高阶组件。本文主要介绍了浅谈react中组件间抽象,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论