使用angularjs将数据发布到PHP

时间:2016-06-19 23:57:10

标签: php angularjs

我已经研究了使用angular将数据发布到php的其他选项但是没有取得任何成功。我有一个名为" user"我已登录js并且可以看到它已被填充。我正在做这样的帖子

$http.post("./api/register.php", user, config).then(function(response) {
                return response.data;
            });

配置对象看起来像

var config = {
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
            }

我已经回复了一个"你好"在PHP中的字符串,我能够看到,但是当我尝试回应我的一个变量时,我无法做到。现在我的php看起来像

<?php

  $postdata = file_get_contents("php://input");
  $request = json_decode($postdata);
  $email = $request->email;
  $pass = $request->firstName;
  echo $email;
?>

我有很多角度体验,但只使用java spring。

3 个答案:

答案 0 :(得分:2)

您正在混合application/jsonapplication/x-www-form-urlencoded的方法。

由于$http的默认值是以json发送而php正在使用file_get_contents("php://input"),我建议你只需从请求中删除config

$http.post("./api/register.php", user).then(fun....

答案 1 :(得分:0)

我建议不要更改标题,将其保留为默认值(application / json):

$http({ 
  method : 'POST', 
  url : '/api/register.php', 
  data: user
})
.then(
  function(res) {
    console.log('SUCCESS', res);
  },
  function(err) {
    console.error('ERROR', err);
  });

如果您在输入中发送json对象,则此PHP代码必须正常工作:

<?php

  $postdata = file_get_contents("php://input");
  $request = json_decode($postdata);
  $email = $request->email;
  $pass = $request->firstName;
  echo $email;

或者如何编写普通的最小Slim Framework应用程序:

$app = new \Slim\Slim();
$app->post('/api/register', function () use ($app) {
    $body = $app->request->getBody();
    var_dump($body);
});
$app->run();

大多数现代框架都具有统一请求处理的强大功能。

当我在php上做简单的api我使用Slim。 here You can see quick start, and make Your own PHP API

答案 2 :(得分:0)

的var_dump($ POSTDATA);从服务器端获取整个数据,您可以查看数据是否会到达服务器端。如果数据不会到达后端,则从前端使用console.log(data) - &gt;检查它是否有json数据。请按照以下approch从前端发送数据。

Angular Code

$http({ 
  method : 'POST/GET', 
  url : '/api/register.php', 
  parm: user   // this hold an data
})
.then(
  function(response) {  
    console.log(response);
  },
  function(erroMessage) {
    console.error(erroMessage);
  });