使用vue-resource的jsonp跨域请求数据,php获取不到前端传过去的数据
发布于 7 年前 作者 mrhtml 2166 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

前端代码: var url = ‘http://localhost/ThinkPHP/ITman-admin/index.php?m=Home&c=User&a=reg’ var Data = { userName: ‘用户名’, mail: ‘邮箱’, password: ‘密码’, gender: ‘性别’ } this.$http.jsonp( url , Data ).then(function(data){ console.log(data) })

后端 thinkphp 代码: $callback = $_GET[‘callback’]; $dataSource[‘self’][‘a’] = ‘这里是后台自己模拟的数据a’; $dataSource[‘self’][‘b’] = ‘这里是后台自己模拟的数据b’; $dataSource[‘data’][‘userName’] = I(‘userName’); $dataSource[‘data’][‘mail’] = I(‘mail’); $dataSource[‘data’][‘password’] = I(‘password’); $dataSource[‘data’][‘gender’] = I(‘gender’); $json = json_encode($dataSource); echo “$callback($json)”;

然而,浏览器客户端控制台打印效果如下: { self":{“a”:“这里是后台自己模拟的数据a”,“b”:“这里是后台自己模拟的数据b”}, “data”:{“userName”:"",“mail”:"",“password”:"",“gender”:""} }

问题:请问为什么php只能返回模拟的字符串 “这里是后台自己模拟的数据a” 和 “这里是后台自己模拟的数据b” ,却不能返回前端传过去的数据?是不是php根本就接收不到前端发送过去的数据? (特别说明:不管用thinkphp的 I() 方法 还是$_GET 还是 $_POST,都没效果)

回到顶部