【问题标题】:React native expo - can't fetch localhost反应本机博览会 - 无法获取本地主机
【发布时间】:2020-04-12 19:04:29
【问题描述】:

我正在使用 Expo 构建一个 React Native 应用程序,我正在尝试像这样获取我的后端服务器:

  useEffect(() => {

    fetch('http://192.168.1.89:8080/api/ciborg/groups')
      .then((response) => response.json())
      .then((json) => setData(json))
      .catch((error) => console.log("->>>>"+error))
      .finally(() => setLoading(false));
  });

但是总是给我以下错误

“TypeError:获取失败”。

我已经尝试了以下方法:

fetch('http://192.168.1.89:8080/api/ciborg/groups')
fetch('http://localhost:8080/api/ciborg/groups')
fetch('http://127.0.0.1:8080/api/ciborg/groups')

但结果总是一样的。但是获取外部 API,例如:https://reactnative.dev/movies.json 有效。

有人可以帮忙吗? 谢谢

【问题讨论】:

  • 您能否确认您的服务器已启动并在端口8080 中运行?
  • 你可以尝试使用 POSTMAN 获取吗?
  • (nodejs server)代码有:app.listen(8080, function() { console.log('Listening on port: 8080'); });在控制台中:侦听端口:8080 例如,后端识别“GET”请求,但在前端它总是捕获并出错。而且我可以用邮递员请求很好地测试后端,即使我在后端(nodejs)端创建一个网络浏览器应用程序来查看请求,我也可以。

标签: reactjs api react-native fetch expo


【解决方案1】:

我有一个 nodejs express 服务器。我补充说:

install-> npm install cors
Add to code: 
var cors = require('cors');
app.use(cors());

它解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    相关资源
    最近更新 更多