vue使用axios發(fā)送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');
然后還不夠
你會(huì)發(fā)現(xiàn)你的get方法已經(jīng)可以在php的$_GET中拿到值了,但是POST還是不行
后來經(jīng)過我在網(wǎng)上的搜索,具體原因好像是缅糟。堵漱。傳輸格式不對
_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);
? ? ? ? ? ? ? ? ? ? });
發(fā)現(xiàn)這樣是不行的
解決方法是
import qs from 'qs';
這個(gè)qs包一般你安裝axios就自帶了
如果沒有的話就自行cnpm install安裝下
// 將請求數(shù)據(jù)轉(zhuǎn)換為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);
? ? ? ? ? ? ? ? ? ? });
接著你就發(fā)現(xiàn)PHP的$_POST拿到值了辞色。浮定。
具體的深層次原因希望日后可以慢慢發(fā)現(xiàn)。。