Javascript angularjs可以';t使用POST与php通信

Javascript angularjs可以';t使用POST与php通信,javascript,php,angularjs,http,post,Javascript,Php,Angularjs,Http,Post,我试图在我的服务器上发送数据,然后从PHP获取数据,但我认为它不会发送数据 我的js代码: angular .module('h2hApp', []) .controller('mainCtrl', ['$scope', '$http', function(scope, http) { scope.initGames = function() { http({ method: '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);
?>

我使用jQuery实现了这一点,但使用AngularJS它似乎不起作用。我对Angular是个新手,我读过一些其他类似的问题。我尝试过添加标题和其他东西,但没有效果。

应该是“参数”,而不是“数据”。请参见

它应该是“参数”,而不是“数据”。请参见

您可以使用方法-

请尝试此代码-

http.post('apis.php', {
                    url: someUrl
                })
                .success(function(data) {
                    console.log(data);
                });
您可以使用方法-

请尝试此代码-

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

可以原谅您认为PHP脚本应该在
$\u POST
变量中使用数据,因为将数据编码为查询字符串一直是默认机制

但是,默认情况下,Angular将消息体编码为JSON对象。如前所述,您可以使用
参数
,但从长远来看,我认为在服务器端进行一致性比较灵活。例如,您可以按如下方式读取和解码消息正文:


可以原谅您认为PHP脚本应该在
$\u POST
变量中使用数据,因为将数据编码为查询字符串一直是默认机制

但是,默认情况下,Angular将消息体编码为JSON对象。如前所述,您可以使用
参数
,但从长远来看,我认为在服务器端进行一致性比较灵活。例如,您可以按如下方式读取和解码消息正文:


请确保设置HTTP头,如下所示:

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';

确保设置HTTP头,如下所示:

$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';

post方法只是一个辅助函数。他的方法并非天生错误。post方法只是一个辅助函数。他的方法并不是天生错误的。他试过了。仍然相同:(当函数“initGames”正在执行时,您在浏览器的网络日志中看到了什么?@iceless
params
作为api url的一部分发送-也就是说,变量将在
$\u GET['url']
中,而不是在post中。@Emmissary是的,使用$\u GET['url']可以很好地处理params。谢谢你们!尝试过了。仍然一样:(在执行函数“initGames”时,您在浏览器的网络日志中看到了什么?@iceless
params
作为api url的一部分发送-即变量将位于
$\u GET['url']
中,而不是post中。@Emmissary是的,使用$\u GET['url']可以很好地处理params。谢谢!