Ionic 发送Http post PHP 获取不到数据
1.app.js 配置请求设置
$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 发送Http post PHP 获取不到数据的更多相关文章
- http实现发送post请求,获取结果集
package com.ming; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.Ou ...
- Netty客户端发送消息并同步获取结果
客户端发送消息并同步获取结果,其实是违背Netty的设计原则的,但是有时候不得不这么做的话,那么建议进行如下的设计: 比如我们的具体用法如下: NettyRequest request = new N ...
- Python+requests 发送简单请求--》获取响应状态--》获取请求响应数据
Python+requests 发送简单请求-->获取响应状态-->获取请求响应数据 1.环境:安装了Python和vscode编译器(Python自带的编译器也ok).fiddler抓包 ...
- 与安卓联调,调用安卓那边的方法,获取到安卓传过来的数据,再携带这些数据发送axios请求,获取到用户的信息
第一步:js调用Android方法:接收Android传递过来的数据,并做处理 //参数一:调用java中的方法 submitFromWeb是方法名,必须和Android中注册时候的方法名称保持一 ...
- 读取TDrawGrid之获取博易数据
朋友叫我帮忙写个从博易读取数据的工具,可无奈数据所在控件并不是Windows标准控件,也就是说没办法通过发送系统消息来获取 相关数据,于是乎试了一下从内存直接读取,可最后并不能达到预期目的,原因是笔者 ...
- jQuery获取JSON格式数据方法
getJSON方法: jQuery.getJSON(url,data,success(data,status,xhr)) $("button").click(function(){ ...
- 使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)
原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...
- FTP下载时连接正常获取不到数据
今天项目中要下载快钱的对账单,快钱对账单文件的FTP服务器是Unix系统,connectServer方法中已连接成功,reply code:220. 但是问题是download方法中的ftpClien ...
- FFmpeg获取DirectShow设备数据(摄像头,录屏)
这两天研究了FFmpeg获取DirectShow设备数据的方法,在此简单记录一下以作备忘.本文所述的方法主要是对应Windows平台的. 1. 列设备 ffmpeg -list_devic ...
随机推荐
- NIO 详解
同步非阻塞 NIO之所以是同步,是因为它的accept read write方法的内核I/O操作都会阻塞当前线程 IO模型 IO NIO 通信 面向流(Stream Oriented) 面向缓冲区(B ...
- Date()日期转换和简单计算
/** * 判断是否为闰年 * @param year * @return */ public boolean isLeap ( int year ) { if ( (year % 4 == 0 &a ...
- java反射快速入门
笔记记在了掘金,发现掘金的markdown编辑器比博客园样式要好看不少 https://juejin.im/post/5d4e575af265da03e4674e9f
- 最大流——poj1459
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...
- LightOJ-1234-Harmonic Number-调和级数+欧拉常数 / 直接打表
In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers ...
- 08_springboot2.x自定义starter
概述 starter:启动器 1.这个场景需要使用到的依赖是什么? 2.如何编写自动配置 规则: @Configuration //指定这个类是一个配置类 @ConditionalOnXXX //在指 ...
- Python flask 构建微电影视频网站✍✍✍
Python flask 构建微电影视频网站 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大 ...
- Pycharm VS VS Code(个人使用感受)
Pycharm IDE (community enough!) 简单介绍:Pycharn的确是我刚开始学习python时,除了Visual Studio之外,上手的第二个IDE,最初是因其好看的界面, ...
- Team Train Recorder 2.0
Bubble Cup 12 - Finals Online Mirror, unrated, Div. 1 2019/10/4, solved 4/9, upsolved
- 主页面与iframe页面之间的javascript函数的调用
1:在主页面里调用iframe页里面的javascript函数 <script type="text/javascript"> var childWindow = $( ...