Ionic 发送Http post PHP 获取不到数据
2016-08-09 20:40
951 查看
1.app.js 配置请求设置
备注:这代码是从网上copy
2.controller.js
3.html
4.服务端代码
备注:具体原理:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/
$httpProvider.defaults.headers.post={ 'Content-Type':'application/x-www-form-urlencoded'} var param = function(obj) { var query = '', name, value, fullSubName, subName, subValue, innerObj, i; for(name in obj) { value = obj[name]; if(value instanceof Array) { for(i=0; i<value.length; ++i) { subValue = value[i]; fullSubName = name + '[' + i + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if(value instanceof Object) { for(subName in value) { subValue = value[subName]; fullSubName = name + '[' + subName + ']'; innerObj = {}; innerObj[fullSubName] = subValue; query += param(innerObj) + '&'; } } else if(value !== undefined && value !== null) query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&'; } return query.length ? query.substr(0, query.length - 1) : query; }; // Override $http service's default transformRequest $httpProvider.defaults.transformRequest = [function(data) { return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data; }];
备注:这代码是从网上copy
2.controller.js
$scope.openGet=function(){ $http.get("http://192.168.108:8000/ionic.php?uname=su").success( function(response){ console.log("status:"+response.status); alert(response.status); } ).error(function(){ //错误消息 }); } $scope.openPost=function(){ $http({ method: "POST", url: "http://192.168.108:8000/ionic.php", data: {"id":'101'}, }).success( function(response) { alert(response.id); } ).error(function(er) { alert(er); }); }
3.html
<button ng-click="openGet()">GET</button> <button ng-click="openPost()">POST</button>
4.服务端代码
<?php $callback = isset($_GET['callback']) ? trim($_GET['callback']) : ''; //jsonp回调参数,必需 //采用jsonp 解决跨域问题 方式处理 if($callback!=''){ $callback = $_GET['callback']; $date = array('status'=>'1','msg'=>'OK'); echo $callback.'('.json_encode($data).')'; } else{ //通过header解决跨域问题 header('Content-Type: application/json'); header("Access-Control-Request-Method: *"); header('Access-Control-Allow-Headers:x-requested-with,content-type'); header("Access-Control-Allow-Origin: *"); header('Access-Control-Max-Age: 60'); $uname = isset($_GET['uname']) ? trim($_GET['uname']) : ''; //echo json_decode($_POST); $id=isset($_POST['id'])?$_POST['id']: ''; if($uname!=''){ $date = array('uname'=>$uname); $date["msg"]="get OK"; $date["status"]="1"; echo json_encode($date); } if($id!=''){ $date = array('id'=>$id); $date["msg"]="Post OK"; $date["status"]="1"; echo json_encode($date); } //echo json_decode(file_get_contents('php://input'),true); } ?>
备注:具体原理:http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/
相关文章推荐
- ionic使用常见问题(八)——PHP无法获取$http的post数据
- Php 服务器端获取不到Android端发送的post数据!!!求解
- PHP后端接收不到AngularJs中$http.post发送的数据的问题
- WindowsPhone8 httpWebRequst 用Post方式向服务器端发送数据 服务器端使用php
- C++使用POST方法向网页提交数据-----C++发送HTTP数据获取Google天气预报
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- jersey post提交到 ContainerRequestFilter 而HttpServletRequest获取不到数据(转)
- Android HttpUrlConnection 发送Post请求 PHP页面$_POST接收不到问题
- 后端接收不到AngularJs中$http.post发送的数据的问题
- php表单提交时获取不到post数据的解决方法
- 后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
- PHP form表单post提交 使用var_dump($_POST)获取不到数据 可能是哪里出问题?
- php获取通过http协议post提交过来xml数据及解析xml
- [php]通过http post发送json数据
- 解决$GLOBALS["HTTP_RAW_POST_DATA"]获取不到数据的问题
- http_post_data发送数据的获取方式
- [php]通过http post发送json数据
- httpclient post方式服务端获取不到数据的解决办法
- [php]通过http post发送json数据
- PHP通过Http Post请求发送Json对象数据?