$ _REQUEST和file_get_contents('php:// input')之间有什么区别;

时间:2013-06-02 15:18:47

标签: php angularjs

我刚刚尝试使用AngularJS并且对它很新。我正在使用$http对我的php服务进行http调用。我注意到我在调用post时传递的数据没有在php端读取 - 我尝试了var_dump($_REQUEST);并且它只显示了一个空数组。使用jQuery' $.ajax进行的同样调用显示数据已经过去了。

然后我发现了一个Stackoverflow帖子,其中有人要求将数据读取为file_get_contents('php://input');而不是$_REQUEST。我试过了,现在我可以使用AngularJS $http来获取数据了。但是,当我尝试使用AngularJS $ http方法进行Get调用时,file_get_contents('php://input');显示NULL$_REQUEST显示数据已通过。

我对这两者究竟是什么以及如何解决这个问题感到困惑?

1 个答案:

答案 0 :(得分:0)

使用GET请求,您将所有数据作为网址的一部分发送。但是当您使用不属于url的数据发送请求时(使用data的{​​{1}}属性),Angular会在请求有效负载中将请求数据作为JSON发送。但是,PHP从请求内容类型为$http的url编码的键值对字符串中填充POST请求变量。你可以send data as application/x-www-form-urlencoded from Angular,但我坚持使用JSON。