[英]angularjs can't communicate with php using POST
我正在嘗試從服務器上的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;
它應該是“參數”,而不是“數據”。 參見http://docs.angularjs.org/api/ng/service/$http#usage
確保設置HTTP標頭,如下所示:
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
您可以使用http.post()
方法-
試試這個代碼-
http.post('apis.php', {
url: someUrl
})
.success(function(data) {
console.log(data);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.