最近实训的项目中,需要实现后端PHP服务器接收非表单数据的需求。本来按道理讲可以直接用HTML中的表单提交数据,但是恰好我使用了Vue.js
框架,所以用到了axios
发送post请求,传递前端数据到后端服务器。不过,经过本人大量测试,PHP服务器中的$_POST无法接收前端的非表单数据,后面经过验证,最终完成需求,步骤如下:
1、设置Content-Type类型
axios({
method:'post',
url:'phps/sign.php',
headers: {
"Content-Type": "application/json; charset=utf-8"
},
data:{
username: this.username,
password: this.password,
email: this.email,
tel: this.tel
}
}).then(function(res){
console.log(res);
});
2、后端通过file_get_contents获取非表单数据
$raw = file_get_contents('php://input');//获取非表单数据
$raw = json_decode($raw); # 把json字符串转换为json对象
print_r($raw);