angularjs无法使用POST与php通信

Hri*_*nev 1 javascript php post http angularjs

我试图发送,然后从我的服务器上的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();
    }]);
Run Code Online (Sandbox Code Playgroud)

和我的PHP文件:

<?php
    $url = $_POST['url'];
    echo file_get_contents($url);
?>
Run Code Online (Sandbox Code Playgroud)

我得到的唯一回应是错误:

Notice: Undefined index: url in /my/path/apis.php on line 2
Run Code Online (Sandbox Code Playgroud)

我使用jQuery使这个工作,但使用AngularJS它似乎不起作用.我是Angular的新手,我也读过其他一些问题.我尝试过添加标题和其他内容,但没有任何效果.

Emi*_*ary 5

您可以原谅认为您的PHP脚本应该期望$_POST变量中的数据,因为编码数据作为查询字符串传统上一直是默认机制.

然而,Angular 默认将消息体编码为JSON对象.如上所述,您可以使用params而不是从长远来看,我认为在服务器端更符合它是更灵活的.例如,您可以按如下方式读取和解码消息正文:

<?php
    $data = json_decode( file_get_contents('php://input') );
    echo $data->url;
Run Code Online (Sandbox Code Playgroud)