php - axios 不向 php 发送任何数据
问题描述
我在 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'}
解决方案
您必须更改此行
$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);
请注意,该方法的签名与Axios 中的get
方法不同,因为该方法不需要 data 参数。post
get
将数据发送到存储时使用 POST 动词被认为是一种很好的做法,而如果您要检索某个标识符的数据,则可以使用 GET。
查看此文档以了解 axios 可以使用的 http 动词的解释:https ://restfulapi.net/http-methods/ 。
推荐阅读
- html - 使用 py2.7 和 py3.7 出现此错误
- c# - 如何在 UWP 中滚动到文本框的末尾?
- javascript - 使用 three.js 的 3D 图
- tvos - 如何使用 Xamarin 从 tvOS 应用程序调用获取 REST API?
- html - bootstrap sm 调整大小不刹车
- android - 如何使用 Gradle 6.1.1 为 APK 设置压缩?
- angular - 模块结构Angular,是否在模块中使用共享组件?
- asp.net-core - 如何使用证书保护 .Net Core 应用程序以进行试用
- reactjs - 在 Next.js 中更改 Ant Design 的主题颜色
- laravel - 实现 ShouldQueue 时,Laravel 通知“无法使用字符串键解压数组”