我试图在我的服务器上发送数据,然后从 PHP 获取数据,但我认为它没有发送数据。
我的js代码:
angular
.module('h2hApp', [])
.controller('mainCtrl', ['$scope', '$http', function(scope, http) {
scope.initGames = function() {
http({
method: 'POST',
url: 'apis.php',
data: {
url: someUrl
}
})
.success(function(data) {
console.log(data);
});
};
scope.initGames();
}]);
和我的 PHP 文件:
<?php
$url = $_POST['url'];
echo file_get_contents($url);
?>
我唯一得到的回应是那个错误:
Notice: Undefined index: url in /my/path/apis.php on line 2
我使用 jQuery 完成了这项工作,但使用 AngularJS 它似乎不起作用。我是 Angular 的新手,我读过一些其他类似的问题。我尝试了添加标题和其他东西,但没有任何效果。
最佳答案
您可能会认为您的 PHP 脚本应该期待 $_POST
变量中的数据,因为传统上将您的数据编码为查询字符串一直是默认设置机制。
然而,Angular 默认将消息正文编码为 JSON 对象。如前所述,您可以改用 params
但是从长远来看,我认为它更灵活地符合服务器端。例如,您可以按如下方式读取和解码消息正文:
<?php
$data = json_decode( file_get_contents('php://input') );
echo $data->url;
关于javascript - angularjs 无法使用 POST 与 php 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892980/