axios不会将数据发布到服务器

问题描述 投票:0回答:1

我正在尝试在React中创建一个登录验证表单,我正在使用axios进行数据库调用。

问题是,我与服务器联系 - 我得到200响应,但我发布的数据不存在。

这是我第一次做的:

const user = {username: this.state.username, password: this.state.password}
axios.post("http://localhost:80/thinksmart/post_requests/login.php", user)
.then(res => console.log(res))
.catch(err => console.log(err))

然后我尝试了另一种方法 - 我设置基本网址:

const api = axios.create({baseURL: 'http://localhost:80'})
    api.post("/thinksmart/post_requests/login.php", user)
    .then(response => {
        console.log(response)
    })
    .catch(error => 
        console.log(error)
    )

这些都没有奏效。

在PHP中我只做这个:

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type'); 
echo json_encode($_POST);

即使我发送了数据(用户数据),我得到一个空数组

php reactjs axios
1个回答
2
投票

您可以通过两种方式解决此问题:1- PHP代码更改:要在后端获取JSON数据,您需要执行以下代码而不是$_POST

$json = file_get_contents('php://input');

2- Javascript代码更改:为了能够使用$_POST在后端接收数据,您需要使用FormData发送更多详细信息,请访问以下链接:axios post requests using form-data

© www.soinside.com 2019 - 2024. All rights reserved.