【问题标题】:axios, cant pass data from react component to PHP fileaxios,无法将数据从反应组件传递到 PHP 文件
【发布时间】:2020-11-24 08:13:05
【问题描述】:

我有一个调用 Axios 函数的反应组件。该函数是我在我的应用程序中多次使用的通用 API 函数,它运行良好。 我正在尝试将数据发送到 PHP 文件。 出于某种原因,我无法在 PHP 文件中获取数据,我可以看到有一个调用,它到达了 PHP 文件(为此我使用 xdebug)。

这是我的代码:

轴心函数:

const apiPath =   apiPath = "http://localhost/bibli/api";

export const apiClient = async(url, method, data) => {
    return new Promise((resolve, reject) => {
        axios({ method, url: `${apiPath}${url}`, data })
            .then(function(response) {
                resolve(response.data);
            })
            .catch(error => {
                reject(error);
            });
    });
};

这是 React 组件中的函数:

  componentDidMount() {
    const userid = this.state.userid;
    const page = this.state.page;
  
      // this.props.GetUserData(userid);
    this.getUserDataAPI( userid, page);

    }
    
    async getUserDataAPI (userid, page){
      let userDataKey = { userid, page }
      console.log( ' userDataKey value is on userdata.js ', userDataKey);
      let response = await apiClient('/users/User.php', 'get', userDataKey)
    
    }

console.log 中,我确实看到了发送的数据并且它不是空的。 我尝试使用$_GET['userid'] 并使用

来获取php文件中的数据
json_decode(file_get_contents('php://input'));

可能是什么问题?

【问题讨论】:

    标签: php reactjs axios


    【解决方案1】:

    您可以尝试发送formData

    let userDataKey = new FormData();
    userDataKey.append("userid", userid);
    userDataKey.append("page", page);
    

    我会在这种情况下使用POST 方法。

    你应该可以通过$_POST['userid']阅读它

    【讨论】:

      【解决方案2】:

      您正在通过 Axios API 使用 GET 方法,但您的代码没有发送任何参数。根据Axios documentation,您必须使用 params 属性来发送带有 GET 请求的 URL 参数。这样做你的代码会变成

      const apiPath = "http://localhost/bibli/api";
      
      export const apiClient = async(url, method, data) => {
          return new Promise((resolve, reject) => {
              axios({ method, url: `${apiPath}${url}`, params: data })
                  .then(function(response) {
                      resolve(response.data);
                  })
                  .catch(error => {
                      reject(error);
                  });
          });
      };
      

      但 URL 参数必须是普通对象或 URLSearchParams 对象。

      【讨论】:

      • 当我添加 params 属性时,我设法读取了 php 文件中的数据,谢谢!
      猜你喜欢
      • 2023-04-03
      • 2021-04-14
      • 2020-09-23
      • 2021-07-19
      • 1970-01-01
      • 2021-10-07
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多