您的位置:首页 > 理论基础 > 计算机网络

ionic使用常见问题(八)——PHP无法获取$http的post数据

2017-07-05 08:56 706 查看
一个简单的post请求

$http.post('do-submit.php',myData)

.success(function(){

//somecode

});




可是,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到

而是需要:

解决方案是什么?

在服务器端(PHP)通过$params=json_decode(file_get_contents(‘php://input’),true);获取参数,小项目可以,大项目要一个一个改。(不推荐)

修改Angular的$httpProvider的默认处理:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/(为了便于以后的管理,这是最好的办法)

在$http增加headers:{‘Content-Type’:‘application/x-www-form-urlencoded’},
transformRequest:function(obj){
varstr=[];
for(varpinobj){
str.push(encodeURIComponent(p)+“=”+encodeURIComponent(obj[p]));
}
returnstr.join(“&”);
},

配置$httpProvider

varmyApp=angular.module(‘app’,[]);

myApp.config(function($httpProvider){

$httpProvider.defaults.transformRequest=function(obj){

varstr=[];

for(varpinobj){

str.push(encodeURIComponent(p)+“=”+encodeURIComponent(obj[p]));

}

returnstr.join(“&”);

}

$httpProvider.defaults.headers.post={

‘Content-Type’:‘application/x-www-form-urlencoded’

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: