【问题标题】:symfony Post data through Angularjssymfony 通过 Angularjs 发布数据
【发布时间】:2016-06-10 00:15:40
【问题描述】:

我正在尝试通过 Angularjs 向 Symfony 发送带有用户名和密码的 ajax 请求,但我无法访问 post 变量。这是我的代码:

HTML:

<div>
                        <input type="text" 
                        class="form-control defaultPassword" 
                        ng-model="username" 
                        placeholder="username">
                    </div>
                    <div class="form-group">
                        <input type="password" 
                        ng-model="password" 
                        class="form-control {% verbatim %}{{ passwordBox }}{% endverbatim %}" 
                        placeholder="password">
                    </div>
                    <div>
                        <span>{% verbatim %}{{ message }}{% endverbatim %}</span>
                        <button id="submitBtn" class="btn" ng-click="login()">login</button>
                    </div>

角控制器

todoApp.controller("LoginController", 
function LoginController($scope, $http){

    $scope.username = "";
    $scope.password = "";

    $scope.login = Login;

    function Login(){
        $http({
            method: 'POST',
            url: '/api/login',
            data: {
                username: $scope.username,
                password: $scope.password
            },
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).then(function successCallback(response) {
            console.log(response);
          }, function errorCallback(response) {
            alert("error");
          });;
    }

});

这里是 symfony 控制器:

/**
 * @Route("/api/login")
 * @Method("POST")
 */
public function apiLogin(Request $request){
    $us = $request->request->get("username");        
}

这种检索数据的方法不起作用。我可以看到正在发送用户名和密码,但我无权访问它们。你能帮我找到另一种方法让它们进入 symfony 控制器吗?

【问题讨论】:

标签: angularjs symfony-3.1


【解决方案1】:

角度

$http({
    method  : 'POST',
    url     : url,
    headers : {'Content-Type': 'application/x-www-form-urlencoded'},
    data    : JSON.stringify(dataObj)
})
.success(function()
{
    console.error("Done");
})
.error(function(dataObj)
{
    console.error("Error");
});

Symfony

包括:

use Symfony\Component\HttpFoundation\Request;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\Post;

功能:

/**
  * POST Route annotation.
  * @Post("/api/login")
  */
    public function apiLoginAction(Request $request)
    {
        $parameters = $request->request->all();

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2015-09-06
    • 2014-02-21
    • 2012-08-01
    • 1970-01-01
    相关资源
    最近更新 更多