簡體   English   中英

angularjs無法使用POST與php通信

[英]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';

有關使用AngularJS中的Post到PHP的更多信息

您可以使用http.post()方法-

試試這個代碼-

http.post('apis.php', {
                    url: someUrl
                })
                .success(function(data) {
                    console.log(data);
                });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM