我正在制作一个测试应用程序来测试角度和php数据传输。 但是angular通过post方法发送数据,但php不接受数据
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js">
</script>
</head>
<body ng-app="myApp">
<div ng-controller="myctrl">
<form ng-submit="insert()">
<input type="text" ng-model="name" name="name" placeholder="name">
<input type="age" ng-model="age" name="age" placeholder="age">
<button type="submit">Submit</button>
</form>
</div>
<script type="text/javascript">
var app = angular.module('myApp',[]);
app.controller('myctrl',function($scope,$http){
$scope.insert=function(){
$http.post("test.php", {
'name':$scope.name,
'age':$scope.age
}).then(function(response){
console.log(response);
},function(error){
alert("Sorry! Data Couldn't be inserted!");
console.error(error);
});
}
});
</script>
</body>
</html>
这是html代码 php代码是
<?php
$data = json_decode(file_get_contents('php://input'));
$place=$data->name;
$image=$data->age;
echo $place;
echo $image;
echo "string";
?>
当我访问这些名称并使其年龄时,将错误视为
“
注意:尝试在 5 C
注意:尝试在 6 C
但有角度的是发送数据 数据:对象 年龄: “2” 名称: “ABCD” 无法确定问题所在。
答案 0 :(得分:0)
向php发出正确的帖子请求的一种方法是通过$ httpParamSerializerJQLike,
所以你可以发这样的帖子:
var data = {
'name':$scope.name,
'age':$scope.age
};
var req = {
method : "POST",
url: "http://yourUrl",
data: $httpParamSerializerJQLike(data),
headers: {
'Content-Type': "application/x-www-form-urlencoded"
}
};
$http(req).then(function(resp){//success}).catch(function(error){//error});