我刚刚尝试使用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
显示数据已通过。
我对这两者究竟是什么以及如何解决这个问题感到困惑?
答案 0 :(得分:0)
使用GET请求,您将所有数据作为网址的一部分发送。但是当您使用不属于url的数据发送请求时(使用data
的{{1}}属性),Angular会在请求有效负载中将请求数据作为JSON发送。但是,PHP从请求内容类型为$http
的url编码的键值对字符串中填充POST请求变量。你可以send data as application/x-www-form-urlencoded from Angular,但我坚持使用JSON。