vue使用axios发送post请求,php的$_POST接受不到值

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拿到值了。。

具体的深层次原因希望日后可以慢慢发现。。

你可能感兴趣的:(vue使用axios发送post请求,php的$_POST接受不到值)