【问题标题】:How to fix fetch returning 404 when reaching for a php file in react native?获取响应本机中的php文件时如何修复获取返回404?
【发布时间】:2019-08-09 12:10:04
【问题描述】:

我目前正在学习 React Native。为了做到这一点,我正在尝试制作一个登录屏幕。我现在只有一个登录屏幕,我想将它与一个 .php 文件连接,该文件将连接到数据库并检查用户和密码。我通常使用 XMLHttpRequest 进行此连接,但有人告诉我最好在 React Native 上使用 fetch (无论如何,两者都遇到了完全相同的问题:请求的状态始终是 404,它似乎永远找不到 .php文件。

logInProcess  = () => {  
    var respond = "";
    var logInValues = {
      login: this.state.user,
      password: this.state.password
    }

    fetch('./backend/login.php', {
      method: "POST",
      body: JSON.stringify(logInValues)
    }).then( (response) => {
        respond = response.json();
        console.log(response.status)
        console.log(respond);
      }
    )
  };

目前,此代码仅用于展示与数据库的连接是否正常工作。稍后我只会添加更多内容,但现在,我需要解决这个 404 问题。

【问题讨论】:

  • 可能是 URL 不正确 - 检查 PHP 服务器中的路径
  • 检查您的服务器是否正在运行。
  • @Jaromanda 我怀疑可能是这样。我正在使用相对路径来执行此操作,但我想知道我是否可以为此使用相对路径
  • 也许只是/login.php - 即/backend 是“文件根”?
  • login.php 文件位于此 js 代码所在的根目录中的 /backend 文件夹中,这就是我正在尝试的。现在,我正在检查将所有内容放在同一个文件夹中是否会有所帮助。 @ravibagul91 我相信我的服务器正在运行。我正在使用 expo 运行应用程序,并且实验室是开放的,它甚至在我的手机上运行,​​所以我想服务器是好的。再说一次,我是 Web 开发的新手,所以我的假设可能是错误的。

标签: javascript php react-native fetch backend


【解决方案1】:

问题是你使用了“./”而不是“/”

logInProcess  = () => {  
var respond = "";
var logInValues = {
  login: this.state.user,
  password: this.state.password
}

fetch('/backend/login.php', {
  method: "POST",
  body: JSON.stringify(logInValues)
}).then( (response) => {
    respond = response.json();
    console.log(response.status)
    console.log(respond);
  }
)
};

【讨论】:

  • 不是这样的。我已经试过了,它仍然返回 404
  • @AugustoCezar 看我上面的评论
猜你喜欢
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2015-12-01
  • 2019-12-16
  • 1970-01-01
  • 2023-02-15
  • 2023-02-09
  • 2013-07-23
相关资源
最近更新 更多