Angular + PHP:POST对象的最简单方法?

时间:2016-12-03 12:40:05

标签: javascript php angularjs json

我正在研究phpangular。目前正在探索使用$http服务向服务器端发送数据的可能性。这就是我提出的它似乎有用,但看起来并不优雅。

角度代码:

$http({
    method: 'POST',
    url: 'server.php',
    data: "newUser=" + JSON.stringify(user),
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    } // set the headers so angular passing info as form data (not request payload)
})
.success(function (respose) {
    var x = JSON.parse(respose);
    console.log(JSON.parse(x));
}).error(function (err) {
    console.log(err);
    console.log("some kind of error");
});

这是我的php代码,用于接收数据并将其返回:

if (isset($_POST["newUser"])) {
    $newUser = $_POST["newUser"];
    echo json_encode($newUser);
}
  1. 为什么我必须指定我通过的json的名字?我的意思是请求的newUser下的data前缀。
  2. 其次,为什么我需要json.parse两次响应才能将其转换回JS对象?
  3. 为什么我必须指定标头才能传递一个简单的JSON字符串?

1 个答案:

答案 0 :(得分:0)

  

Q1。为什么我必须指定我传递的json的名称?我的意思是请求数据下的newUser前缀。

     

Q3。为什么我必须指定标头才能传递一个简单的JSON字符串?

在PHP中,您有全局数组,如$_POST& $_GET用于接收从请求中提取的数据key=value。  使用$_POSTapplication/x-www-form-urlencoded作为HTTP内容类型时,multipart/form-data已填充。

因此,为了使用这些全局数组,您必须完全填充这两个条件

好的另一种方法是使用php://input流直接读取原始输入,这样就可以直接发送json字符串。

file_get_contents(“php://input”);