我正在尝试在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))
然后我尝试了另一种方法-在其中设置基本URL:
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使用表单数据发布请求
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句