Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将AngularJS http post发送到PHP文件?_Javascript_Php_Json - Fatal编程技术网

Javascript 如何将AngularJS http post发送到PHP文件?

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),

我试图解释如何将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),
   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文件,该文件包含与文件其他部分类似的代码。它们是有效的,只有我对如何接受的理解是无效的。我已经测试过这个。。。