Javascript 如何将AngularJS http post发送到PHP文件?
我试图解释如何将json post从JavaScript文件转换为PHP文件 这是我的JS文件:Javascript 如何将AngularJS http post发送到PHP文件?,javascript,php,json,Javascript,Php,Json,我试图解释如何将json post从JavaScript文件转换为PHP文件 这是我的JS文件: var url2 = '/php/extractkeywords.php'; var jsonData = angular.toJson({ text: $scope.userTyping, data: post }); $http({ url: url2, method: "POST", data: "data=" + window.btoa($scope.textHTML),
var url2 = '/php/extractkeywords.php';
var jsonData = angular.toJson({
text: $scope.userTyping,
data: post
});
$http({
url: url2,
method: "POST",
data: "data=" + window.btoa($scope.textHTML),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function (data, status, headers, config) {
// Sending to extractkeywords.php
})
这是我的PHP文件:
$data = json_decode(urldecode(base64_decode($_POST["data"])));
当我试图打印$data时,我什么也得不到。您需要传递JSON,这里:
data: "data=" + window.btoa($scope.textHTML),
您使用的是等号,不应使用等号。JSON可以有对象、数组和键值对,因此需要一个键。我相信这将改进您的代码:
data: {data: window.btoa($scope.textHTML)},
我对angular不太熟悉,但您可以使用json_last_error来查看json_解码出了什么问题。在调试过程中,将所有不同的解码分离成单独的语句,并在语句之间使用var_dump,这样您就可以看到发生了什么。它可以在另一个文件中工作,但不能在这个文件中工作。我将从转储$_POST[“data”]而不是base64_decode($_POST[“data”])而不是转储urldecode(base64_decode($_POST[“data”])开始只是想看看你有什么,可能没有一个JSON,如果它一直说空呢?试过了,但没用。似乎没有什么不同。@azmatrix,这是解决方案的一部分,以确保数据发送良好。另一部分是接受它好。完成此操作后,可以使用var_dump$_post文件,该文件包含与文件其他部分类似的代码。它们是有效的,只有我对如何接受的理解是无效的。我已经测试过这个。。。