繁体   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