首页 > 解决方案 > 使用相对 URL 的 fetch() 在 React Native 上失败

问题描述

如果我尝试以下代码(React Native 应用程序,Expo)

fetch('/public/test.txt').then(function(response) {
     console.log(response);
});

我收到“网络请求失败”错误。但是,如果我预先添加主机:端口(' http://localhost:3000/public/test.txt '),它就可以正常工作。不支持相对 URL?

标签: react-nativeexpo

解决方案


在 React Native 中,不支持相对 URL。请求 url 必须是绝对 url。如果您只想使用一个基本 url,一种方法是创建一个具有“BASE_URL”变量的配置文件,例如。' http://192.168.4.101:3000 '。(192.168.4.101 是您的计算机 IP 地址)。之后,导入配置文件并编写如下内容:

fetch( config.BASE_URL+ '/public/test.txt' )

推荐阅读