Axios不会将任何数据发送到php

时间:2019-08-28 21:42:22

标签: php reactjs axios

我在Reactjs中使用axios将用户数据发送到php,然后使用php创建一个新用户,但是当我要发送数据时,它变成空的,并且我的php端出现了一些错误

我的反应代码

import React, { useReducer } from 'react';
import axios from 'axios';
import UserContext from './userContext';
import userReducer from './userReducer';

  //Register user
const registerUser = async () =>{
    const config = {
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
          }
    };


    const response  = await axios.post('http://localhost/react_cms/api/users/user.php' , {message : 'ppp'} , config);

    console.log(response.data);
}

return (
    <UserContext.Provider 
    value={{

        registerUser
    }}>
    {props.children}
    </UserContext.Provider>
);


}

export default UserState;


以及我的php辅助代码:

<?php
    $message = isset($_GET['message']) ? $_GET['message'] : 'no';

    $data = array ('message' => $message);

    echo json_encode($data);
?>

这段代码的结果是:

{message : 'no'}

1 个答案:

答案 0 :(得分:1)

您必须更改此行

$message = isset($_GET['message']) ? $_GET['message'] : 'no';

进入

$message = isset($_POST['message']) ? $_POST['message'] : 'no';

或保持原样并通过更改axios调用发送获取请求

来自

const response  = await axios.post('http://localhost/react_cms/api/users/user.php' , {message : 'ppp'} , config);

const response  = await axios.get('http://localhost/react_cms/api/users/user.php?message=ppp', config);

请注意,get方法的签名与Axios中的post方法的签名不同,因为get方法不需要data参数。

在发送数据以存储数据时,最好使用POST动词,而如果要检索某个标识符的数据,则可以使用GET。

请参阅此文档,以获取axios可以使用的http动词的解释:https://restfulapi.net/http-methods/