Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使I';我收到了200条回复?_Javascript_Php_Html_Angularjs_Flightphp - Fatal编程技术网

Javascript 即使I';我收到了200条回复?

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 ==

我有一个PHP应用程序,用于客户端、REST服务和后端的PHP

然而,尽管我在这里发布了一篇带有此代码的
帖子

$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文档,它只能被读取一次”,您有参考资料吗?我也被这个问题弄糊涂了。谢谢