当我使用AngularJS $ http post将数据发送到PHP文件时,数据类型应该是一个字符串。但是当我尝试通过then函数从PHP文件中获取输出数据(我只是简单地回显$_POST['string']
)时,它会以某种方式自动更改为[object Object]
类型。
以下是代码:
JS:
$http({
method:"POST",
type:"json",
url:"./forms/crud.php",
data:{id:cId}
}).then(function (d) {
alert(d.config.data.id);
console.log(d);
})
PHP:
if(is_post_quest()){
echo $_POST['id'];
}
控制台输出:
{data: "", status: 200, headers: ƒ, config: {…}, statusText: "OK", …}
我可以访问id数据的方法是键入d.config.data.id,这不是我想要的。
我认为问题是从PHP文件中获取AngularJs的数据与使用AJAX的数据有所不同。
对于AJAX,geting数据只需要使用$_POST['id']
。
但是,对于AngularJS HTTP POST请求,需要输入类似:
$data = json_decode(file_get_contents("php://input"));
echo $data->id;
以下是现在的样子。
{data: "568", status: 200, headers: ƒ, config: {…}, statusText: "OK", …}
答案 0 :(得分:0)
你应该这样做
$http({
method:"POST",
type:"json",
url:"./forms/crud.php",
data:JSON.stringify({id:cId})
}).then(function (d) {
alert(d.config.data.id);
console.log(d);
})
答案 1 :(得分:0)
我将做一个例子,用于从角度请求数据并进入PHP代码,然后获得结果。
//角度代码
var url = 'your url';
var data = {
"type": "json",
};
//Ajax call
$http.post(url, data).success(function (data, status, headers, config) {
var result = angular.fromJson(data);
}).error(function (data, status, headers, config) {
$scope.preloader=false;
});
// PHP代码
$ postdata = file_get_contents(" php:// input");
$ request = json_decode($ postdata);
echo json_encode([' data' => $ this-> request-> data,' status' => true,' error' =>'']);