我正在尝试从我的角度js发出一个帖子请求,如下所示
var postData={
firstName:'VenuGopal',
lastName:'Kakkula'
};
postData=JSON.stringify(postData);
$http({method:'POST',url:'http://localhost/blog/posttest.php?insert=true',data:postData,headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.success(function (data,status,headers,config) {
alert('Success' + data);
})
.error(function (data, status,headers,config) {
// uh oh
alert('error' + status + data);
});
我不确定如何在PHP REST Web服务中读取此POST数据。
<?php
header("Access-Control-Allow-Origin:*");
header('Access-Control-Allow-Headers:Content-Type');
header("Content-Type:application/json");
if(!empty($_GET['insert']))
{
$result=json_decode($_POST['firstName']);
deliver_response(200,"Got the Post data","GotData $result");
}
function deliver_response($status,$statusmsg,$data)
{
header("HTTP/1.1 $status $statusmsg");
$response['status']=$status;
$response['status_message']=$statusmsg;
$response['data']=$data;
$json_response=json_encode($response);
echo $json_response;
}
&GT;
我尝试了以下选项
json_decode($_POST['firstName'])
json_decode($_POST['data'])
json_decode($_POST['[postData'])
他们都没有返回数据,它总是在第10行的F:\ xampp \ htdocs \ Blog \ posttest.php中返回错误Undefined index:firstName
任何人都可以帮我解释如何读取php文件中发送的POST请求数据。
答案 0 :(得分:0)
最有可能的原因是您提交的JSON数据并非按标准表单数据自动填充到$ _POST变量中。
解决方法是手动将输入解析为变量以供使用。
示例:
<?php
$args = json_decode(file_get_contents("php://input"));
echo $args->firstName;
?>
答案 1 :(得分:0)
您也可以在不更改服务器中的代码的情况下解决此问题,并以常规方式使用$_POST
。在此解释:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/