我正在研究php
和angular
。目前正在探索使用$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);
}
json
的名字?我的意思是请求的newUser
下的data
前缀。 json.parse
两次响应才能将其转换回JS对象?答案 0 :(得分:0)
Q1。为什么我必须指定我传递的json的名称?我的意思是请求数据下的newUser前缀。
Q3。为什么我必须指定标头才能传递一个简单的JSON字符串?
在PHP中,您有全局数组,如$_POST
& $_GET
用于接收从请求中提取的数据key=value
。
使用$_POST
或application/x-www-form-urlencoded
作为HTTP内容类型时,multipart/form-data
已填充。
因此,为了使用这些全局数组,您必须完全填充这两个条件
好的另一种方法是使用php://input
流直接读取原始输入,这样就可以直接发送json字符串。
file_get_contents(“php://input”);