AngularJS $http.post,将数组传递给PHP

5

我正在使用一个服务来更新数据库表。

myApp.factory('createGal', function ($http, $q)
{
    return {
        createGal: function ()
        {
            var deferred = $q.defer();
            var newGalleryArray = {};

            newGalleryArray.galleryName = 'New Image Gallery';
            newGalleryArray.client      = 245;

            $http.post('/beta/images/create', {newGalleryArray: newGalleryArray}).success(function(data)
            {
                console.log(data);
                deferred.resolve(data);
            });

            return deferred.promise;
        }
    };
});

PHP

public function create()
{
    print_r($_POST);
}

数组返回为空。我是否传递了错误的数组?

Chrome Dev enter image description here

谢谢


控制台对请求有何反应? - tymeJV
成功,请求。返回DB操作,仅返回数组而不是通过POST发送。 - SuperNinja
有趣...你的PHP返回了什么? - tymeJV
现在我只是想让PHP打印出$ _POST。它返回Array().... - SuperNinja
$_POST['newGalleryArray'] 怎么样? - tymeJV
1个回答

6

我有一段时间没有使用PHP了,但是$_POST只包含请求参数,对吧? $http.post 通过JSON负载发送数据,而不是请求参数。因此,您需要使用类似于json_decode的东西。


糟糕!刚刚需要添加 $json = json_decode(file_get_contents("php://input")); - SuperNinja
如果你在使用jQuery,可以通过$.params发送你的POST数据,并在请求头中添加Content-Type为'application/x-www-form-urlencoded'。这样你就可以直接使用$_POST全局变量了。 - Oliver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接