php - axios 不会将数据发布到服务器
问题描述
我正在尝试在 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);
即使我发送了数据(用户数据),我也会得到一个空数组
解决方案
您可以通过两种方式解决此问题: 1- PHP 代码更改:要在后端获取 JSON 数据,您需要执行以下代码而不是$_POST
:
$json = file_get_contents('php://input');
2- Javascript 代码更改:为了能够在后端接收数据,$_POST
您需要使用FormData
更多详细信息发送数据,可以在以下链接中找到:
axios post requests using form-data
推荐阅读
- ios - InAppBrowser IOS 14
- r - R循环从几个后续行子集信息并创建新列
- vue.js - 将成分添加到购物清单
- javascript - 从字符串列表创建树 - javascript
- javascript - ES6 解构并作为参数一起传播到 React 组件中
- c# - 具有来自 itemsource 或用户输入的选定值(路径)的可编辑组合框
- python - 使用 cvtColor() 函数将我的图像转换为灰度的问题
- android - 如何使用 ViewModel 请求权限
- amazon-web-services - 如何在 boto3 中使用 AWS polly 进行暂停
- flutter - Flutter 将动画从小到大