ionic使用常见问题——PHP无法获取$http的post数据
Posted 它山之石可以攻玉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ionic使用常见问题——PHP无法获取$http的post数据相关的知识,希望对你有一定的参考价值。
一个简单的post请求
$http.post(‘do-submit.php‘,myData) .success(function(){ // some code });
可是,用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到
而是需要:
$params= json_decode(file_get_contents(‘php://input‘),true);
解决方案是什么?
- 在服务器端(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) {
var str = [];
for (var p in obj) {
str.push(encodeURIComponent(p) + “=” + encodeURIComponent(obj[p]));
}
return str.join(“&”);
}, - 配置$httpProvider
var myApp = angular.module(‘app’,[]); myApp.config(function($httpProvider){ $httpProvider.defaults.transformRequest = function(obj){ var str = []; for(var p in obj){ str.push(encodeURIComponent(p) + “=” + encodeURIComponent(obj[p])); } return str.join(“&”); } $httpProvider.defaults.headers.post = { ‘Content-Type’: ‘application/x-www-form-urlencoded’ } });
以上是关于ionic使用常见问题——PHP无法获取$http的post数据的主要内容,如果未能解决你的问题,请参考以下文章
Ionic 5 使用 Ionic Storage 获取 JWT 并在 HTTP 调用中发送标头
无法在 Ionic 框架上使用人行横道获取地理位置(未发现错误)
Ionic 2 - firebase 插件 - 无法获取手机的令牌