Javascript 即使I';我收到了200条回复?
我有一个PHP应用程序,用于客户端、REST服务和后端的PHP 然而,尽管我在这里发布了一篇带有此代码的Javascript 即使I';我收到了200条回复?,javascript,php,html,angularjs,flightphp,Javascript,Php,Html,Angularjs,Flightphp,我有一个PHP应用程序,用于客户端、REST服务和后端的PHP 然而,尽管我在这里发布了一篇带有此代码的帖子: $scope.registerUser = function() { $http({ method: 'POST', url: '/user/register', data: $scope.user }).success(function(data) { if (data.result ==
帖子
:
$scope.registerUser = function() {
$http({
method: 'POST',
url: '/user/register',
data: $scope.user
}).success(function(data) {
if (data.result === undefined) {
setAjaxMessage(data, false);
return;
}
if (data.result === 0) {
setAjaxMessage(data.message, true);
}
else {
setAjaxMessage(data.message, false);
}
}).error(function(data) {
setAjaxMessage(data, false);
});
};
和我通过Firefox获得了一条成功的POST
消息,其中Params->Request payload
选项卡设置为以下数据:
{"displayname":"user1","email":"user1@gmail.com","password":"abc123"}
当我发布此服务器端时:
Flight::route('POST /user/register', function() {
echo var_dump($_POST);
return;
// register the user
require 'core/register.php';
});
我明白了:
array (size=0)
empty
这里有什么?我以前从未遇到过关于
$\u POST
数据的问题。我感觉它与FlightPHP有关,但我无法确定。如您所见,它正在进入POST
的处理程序。如果您没有发布表单编码的查询字符串(如原始JSON),则需要从PHP的原始输入中获取数据。以下是如何将JSON数据读入适当的PHP数据结构:
$post_data = json_decode(file_get_contents('php://input'));
还应明确设置内容类型标题,如下所示:
$http({
method: 'POST',
url: '/user/register',
data: $scope.user,
headers: {'Content-Type': 'application/json'}
}).success(function(data) {
// rest of your code
好吧,这个有点怪。但是它是因为FlightPHP。通常,迈克·布兰特提供的答案是100%正确的!然而,FlightPHP在我能够读取之前读取该输入,并且根据PHP文档,它只能读取一次 那么,FlightPHP把它放在哪里?哈,这真是奇怪。他们将它放在名为
body
的属性中,因此我必须这样做才能获取这些JSON值:
$vars = json_decode(Flight::request()->body, true);
Flight::request()->body
返回JSON字符串。但这需要解码并转换为关联数组,因此我将true
作为第二个参数传递。您的var\u dump
的确切输出是什么?PS:var\u dump
输出本身,您不需要在it@zerkms,对不起,我在编辑时把文章弄糟了。请查看我的编辑。如果执行var\u dump($\u POST)代码>在该框架的入口点中作为第一行?在框架有机会删除它之前。@zerkms,完全相同的结果。你不会碰巧发送JSON而不是url编码的键值对吗?这对我很有用!编写php已经13年了,这是我第一次遇到这个。谢谢成功发送数据,但$\u POST为空时。我确认json解码(文件获取内容('php://input))就像一个符咒。谢谢!谢谢你!我被困在同一个问题上,几乎放弃了。@izolate,我很高兴我能帮上忙!“根据PHP文档,它只能被读取一次”,您有参考资料吗?我也被这个问题弄糊涂了。谢谢