vue使用axios发送post请求,php的$_POST接受不到值
首先PHP端的跨域不多说
直接方法下面增加
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE');
然后还不够
你会发现你的get方法已经可以在php的$_GET中拿到值了,但是POST还是不行
后来经过我在网上的搜索,具体原因好像是。。传输格式不对
_this.$axios
.post("http://XXXX", {name:"123",age:"13"})
.then(function (response) {
console.log(response);
if (response.data.code == 200) {
} else _this.$message.error(response.data.msg);
});
发现这样是不行的
解决方法是
import qs from 'qs';
这个qs包一般你安装axios就自带了
如果没有的话就自行cnpm install安装下
// 将请求数据转换为form-data格式
// 这里不用qs,用FormData也可以,不赘述
var data = qs.stringify({
currentPage: "0",
pageSize: "10",
type: "1",
});
然后。。
_this.$axios
.post("http://XXXX", data)
.then(function (response) {
console.log(response);
if (response.data.code == 200) {
} else _this.$message.error(response.data.msg);
});
接着你就发现PHP的$_POST拿到值了。。
具体的深层次原因希望日后可以慢慢发现。。