Javascript 使用$http.post()从angular发布到php的变量无效
我使用$http.post()方法将angularjs控制器中的变量发布到同一文件夹中的php文件中。但是在php页面中,我能够检索变量。变量未定义 这是角度代码Javascript 使用$http.post()从angular发布到php的变量无效,javascript,php,angularjs,http,Javascript,Php,Angularjs,Http,我使用$http.post()方法将angularjs控制器中的变量发布到同一文件夹中的php文件中。但是在php页面中,我能够检索变量。变量未定义 这是角度代码 $scope.checkout = function(){ $http({ url:"checkout.php", method : 'POST', data :{ 'total':$scope.total },
$scope.checkout = function(){
$http({
url:"checkout.php",
method : 'POST',
data :{
'total':$scope.total
},
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data, status, headers, config) {
window.location.href = 'checkout.php'
}).error(function(data, status, headers, config) {
console.log("not done");
});
}
下面是php代码
<?php
$_SESSION['bill_amount'] = $_POST['total'];
echo $_SESSION['bill_amount'];
?>
但是我得到的错误是total未定义。您正在发送数据,但默认情况下以
JSON
格式发送数据,您需要解码JSON,因此在php文件中使用JSON\u decode
函数解码JSON
。完整代码如下所示:
<?php
$data = json_decode(file_get_contents("php://input"));
$total = $data->total; // $_POST['total'];
$_SESSION['bill_amount'] = $total;
?>
我找到了答案。我创建了一个名为middleware.php的中间页面,在该页面中,我将post数据存储到会话变量中,如果成功,我将重定向到checkout.php,并通过会话变量使用post值。否它不起作用。.试图获取非对象的属性时出现错误…请参见成功后,我重定向到该页面时的$http.post()重定向后无效