【发布时间】:2013-10-06 23:59:48
【问题描述】:
我有一个 PHP 应用程序,它使用 AngularJS 作为客户端,FlightPHP 用于 REST 服务,并在后端使用 PHP。
但是,即使我在这里使用此代码发出 POST:
$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
这里给出了什么?我以前从未遇到过$_POST 数据的问题。我感觉它与 FlightPHP 有关,但我不能指望它。如您所见,它正在进入POST 的处理程序。
【问题讨论】:
-
您看到
var_dump的确切输出是什么? PS:var_dump自己输出,前面不需要额外的echo -
@zerkms,抱歉我在编辑时弄乱了帖子。请查看我的编辑。
-
如果您在该框架的入口点作为第一行执行
var_dump($_POST);会怎样?在框架有机会放弃它之前。 -
@zerkms,结果完全相同。
-
您不会碰巧发送 JSON 而不是 url 编码的键值对吗?
标签: javascript php html angularjs flightphp