Angular http post 到 Laravel 后端请求总是空的

Angular http post to Laravel backend Request always empty

我有一个不知道如何解决的问题。 我使用 AngularJS 1 为我的后端 (Laravel 5.1) 创建一个 post。 post 从 AngularJS 开始成功。

在我的 Laravel 控制器中,我使用 Request 从 AngulrJS 接收 posted 数据,但是 $request->all() 总是空的,我不知道为什么。

我是否遗漏了我的 post 请求中的内容?

LARAVEL ROUTE:

Route::post('/signup','SignupController@Signup');


LARAVEL CONTROLLER:
<?php


namespace App\Http\Controllers;
use Illuminate\Http\Request;

class SignupController extends Controller
{
    public function Signup(Request $request){


       dd($request->all()); <-- is always empty
    }  
}

ANGULARJS POST:

.controller('SignupCtrl',function($scope,$http,$state){ 

  $scope.Signup = function($params){

        $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
        $http.post('http://localhost:8888/vemhamtar/public/signup',{"name":$params.name,"phone":$params.phone,"email":$params.email,"password":$params.password})
        .success(function(response){

          $params.name = "";
          $params.phone = "";
          $params.email = "";
          $params.password = "";
          $state.go("app.contacts");

        })
        .error(function(error){
          console.log(error);
        });
  };
})

尝试使用 $httpParamSerializer 将您的负载格式化为 url 编码的表单数据。

.controller('SignupCtrl',function($scope,$http,$state,$httpParamSerializer){ 

    $scope.Signup = function($params){

        $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
        $http.post('http://localhost:8888/vemhamtar/public/signup',$httpParamSerializer({"name":$params.name,"phone":$params.phone,"email":$params.email,"password":$params.password}))
        .success(function(response){

            $params.name = "";
            $params.phone = "";
            $params.email = "";
            $params.password = "";
            $state.go("app.contacts");

        })
        .error(function(error){
            console.log(error);
        });
    };
})