Метод Slim Post не работает с Http-запросом AngularJs

Это мой контроллер AngularJS:

app.controller('emailConfirmCtrl', function ($scope, $http) {
  $scope.check_credentials = function () {

    var request = $http({
      method: 'POST',
      url: 'api/slim.php/website/email_verification',
      data: {
        email: '[email protected]'        
      },
      headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8' }
    });

    /* Check whether the HTTP Request is successful or not. */
    request.success(function (data) {
    console.log('email sent successfully');
    console.log(data); 
    });
  }
}); 

И в моем Slim API я пытаюсь получить доступ к данным следующим образом:

$app->post("/website/email_verification", function () use ($app, $db) {
  $request = $app->request();
  $body =  json_decode($request->getBody());

// $email_id = $body['email']; 
 echo $body;   
});

Но я получаю ошибку 404, но если я изменю метод публикации, чтобы получить, ошибки 404 не будет (т.е. URL-адрес, указанный в контроллере AngularJS, в порядке).

Как я могу получить доступ к email_id в моем SLIM API с помощью метода post.


person sahil solanki    schedule 23.05.2015    source источник


Ответы (1)


для json вы можете прочитать необработанное тело запроса

вы будете декодировать входной поток

$body = json_decode(file_get_contents('php://input'));

в вашем случае вы можете попробовать это

$app->post("/website/email_verification", function () use ($app, $db) {
 $body = json_decode(file_get_contents('php://input'));
  echo $body;   
});
person A.B    schedule 23.05.2015
comment
но все же я получаю эту ошибку: «POST localhost/website/api/slim.php/ веб-сайт/email_verification 500 (внутренняя ошибка сервера)' в моей консоли, как мне решить эту проблему в первую очередь? - person sahil solanki; 23.05.2015
comment
есть ошибка на стороне php (сервера), вам нужно ее исправить - person A.B; 23.05.2015
comment
Можете ли вы предложить некоторые решения для этой ошибки на стороне сервера? - person sahil solanki; 23.05.2015