首页 新闻 会员 周边 捐助

PHP接收JSON

0
悬赏园豆:100 [已关闭问题] 关闭于 2016-03-02 10:49

我用PHP+knockoutJS,下面是我的ajax代码:

save: function() {
                $.ajax({
                    url:"http://localhost/loyalty/welcome/json/",
                    type: "post",
                    data: ko.toJSON(this),
                    contentType: "application/json",
                    success: function (result) { alert(result) }
                });
            }

使用Firebug可以看出JSON消息发送正确,问题是如何在PHP接收所发送的名称是什么?

我用的是PHP5.6

提前感谢任何帮助。

打酱油的米饭的主页 打酱油的米饭 | 初学一级 | 园豆:36
提问于:2016-03-01 14:08
< >
分享
所有回答(3)
0

http://jcyzone.iteye.com/blog/1733668

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-01 14:21
0

change

data: ko.toJSON(this),

to

data: {mydata : ko.toJSON(this) },

 

"mydata" can be any word you like.

爱编程的大叔 | 园豆:30844 (高人七级) | 2016-03-01 14:26

FireBug查看传递的参数是:

da=%7B%22list%22%3A%7B%22deleted%22%3A%5B%5D%2C%22inserted%22%3A%5B%5D%2C%22updated%22%3A%5B%7B%22uid%22%3A%225%22%2C%22nickname%22%3A%22222222%22%2C%22username%22%3A%22222222222%22%7D%5D%2C%22_changed%22%3Atrue%7D%7D

通过:data: ko.toJSON(this),

传递的参数是:

{"list":{"deleted":[],"inserted":[],"updated":[{"uid":"5","nickname":"222222","username":"22222222"}],"_changed":true}}
支持(0) 反对(0) 打酱油的米饭 | 园豆:36 (初学一级) | 2016-03-01 14:51

@快乐播放器: 上面那串翻译后就是

da={"list":{"deleted":[],"inserted":[],"updated":[{"uid":"5","nickname":"222222","username":"222222222"}],"_changed":true}}

 

所以你的问题是?

我以为你已经知道怎么写了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2016-03-01 15:23

@爱编程的大叔: 

我的代码:

com.ajax是封装简化JQuery的ajax操作

            com.ajax({
                url: '/admin.php/User/edit',
                data: ko.toJSON(post),
                success: function (d) {
                    com.message('success', '保存成功!');
                    self.gridEdit.accept();
                }
            });

执行ajax POST操作后,FireBug的截图

,PHP代码(使用ThinkPHP框架):

dump(json_decode($_POST));

,dump结果是:

<pre>NULL
</pre>

我想要的结果是$_post里面能够获取到post的json数据,但是现在是null

 

 

支持(0) 反对(0) 打酱油的米饭 | 园豆:36 (初学一级) | 2016-03-01 15:32
0

最终使用$GLOBALS['HTTP_RAW_POST_DATA']成功解决。

补充说明:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。

打酱油的米饭 | 园豆:36 (初学一级) | 2016-03-02 10:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册