[英]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.