angular 的 GET 请求 和 POST 请求的 区别 及 实现
1.GET 请求
.factory('AlarmService', ['$rootScope','ENV','$resource','$http','ionicToast',function($rootScope,ENV,$resource,$http,ionicToast) {
var resource = $resource(ENV.baseUrl + ENV.alarm);
return{
getAlarmListData: function(){
// 参数
var params = {
userAccount: window.localStorage.userAccount,
pageNo: 1
}
/**
* GET 请求方式
* 1.jquery
* 2.$http
* 3.$resource.save()
*/
// 1.jquery
$.ajax({
url: ENV.baseUrl + ENV.alarm,
type: 'GET',
data: params,
dataType : 'json',
success:function(data){
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
},
error:function(xhr){
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
}
});
// 2.$http
$http({
url : ENV.baseUrl + ENV.alarm,
method : 'GET',
params: params,
dataType : 'json'
}).success(function(data, status, headers, config) {
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
}).error(function(data, status, headers, config) {
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
});
$http.get(ENV.baseUrl + ENV.alarm,{
params: params
}).success(function(data, status, headers, config) {
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
}).error(function(data, status, headers, config) {
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
});
// 3.$resource.get()
resource.get(params, function(data){
if(!data.object){
ionicToast.show('暂无数据!', 'top', false, 1000);
}else{
$rootScope.$broadcast("alarmListData.updated",data.object);
}
},function(){
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
})
}
}
}])
2.POST 请求
.factory('AlarmService', ['$rootScope','ENV','$resource','$http','ionicToast',function($rootScope,ENV,$resource,$http,ionicToast) {
var resource = $resource(ENV.baseUrl + ENV.alarm);
return{
getAlarmListData: function(){
// 参数
var params = {
userAccount: window.localStorage.userAccount,
pageNo: 1
}
/**
* POST 请求方式
* 1.jquery
* 2.$http
* 3.$resource.save()
*/
// 1.jquery
$.ajax({
url: ENV.baseUrl + ENV.alarm,
type: 'POST',
data: params,
dataType : 'json',
success:function(data){
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
},
error:function(xhr){
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
}
});
// 2.$http
$http({
url : ENV.baseUrl + ENV.alarm,
method : 'POST',
data: params,
dataType : 'json',
headers:{'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(data, status, headers, config) {
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
}).error(function(data, status, headers, config) {
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
});
$http.post(
ENV.baseUrl + ENV.alarm,
params,
{ // 将参数传递的方式改成form
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
transformRequest: function (data) {
return $.param(data);
}
}
)
.success(function(data, status, headers, config) {
// 成功的回调
$rootScope.$broadcast("alarmListData.updated",data.object);
})
.error(function(data, status, headers, config) {
// 失败的回调
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
});
// 3.$resource.save()
resource.save(params,function(data){
if(!data.object){
ionicToast.show('暂无数据!', 'top', false, 1000);
}else{
$rootScope.$broadcast("alarmListData.updated",data.object);
}
},function(){
ionicToast.show('网络异常,请检查网络!', 'top', false, 1000);
})
}
}
}])
注:post 请求需要 在 app.js 中 config 里配置 headers
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
angular 的 GET 请求 和 POST 请求的 区别 及 实现的更多相关文章
- ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求
通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddlew ...
- Java Web中请求转发和请求包含
1.都是在一个请求中跨越多个Servlet 2.多个Servlet在一个请求中,他们共享request对象.就是在AServle中setAttribute()保存数据在BServlet中由getAtt ...
- Ajax中Get请求与Post请求的区别
Get请求和Post请求的区别 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 例子 页面的HTML代码: &l ...
- WebApi系列~基于单请求封装多请求的设计
回到目录 怎么说,单请求封装多请求,这句话确实有点绕了,但还是要看清楚,想明白这到底是怎么一回事,单请求即一次请求(get,post,put,delete),封闭多请求,即在客户端发送的一个请求中可能 ...
- 详细解读XMLHttpRequest(一)同步请求和异步请求
本文主要参考:MDN XMLHttpRequest 让发送一个HTTP请求变得非常容易.你只需要简单的创建一个请求对象实例,打开一个URL,然后发送这个请求.当传输完毕后,结果的HTTP状态以及返回的 ...
- 【读书笔记】iOS网络-同步请求,队列式异步请求,异步请求的区别
一,同步请求的最佳实践. 1,只在后台过程中使用同步请求,除非确定访问的是本地文件资源,否则请不要在主线程上使用. 2,只有在知道返回的数据不会超出应用的内存时才使用同步请求.记住,整个响应体都会位于 ...
- iOS开发——网络篇——文件下载(NSMutableData、NSFileHandle、NSOutputStream)和上传、压缩和解压(三方框架ZipArchive),请求头和请求体格式,断点续传Range
一.小文件下载 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/images/minion ...
- request获取请求头和请求数据
package cn.itcast.request; import java.io.IOException; import java.io.InputStream; import java.io.Pr ...
- Ajax的get请求向服务器请求数据五步骤?
如下: ①创建ajax对象 ②建立http请求 ③发送http请求 ④设置ajax对象状态改变的回调函数 ⑤判断ajax状态是否等于4,做相应的业务逻辑
- 网络处理2-异步POST请求和同步请求
一.异步POST请求 假如请求路径是http://192.168.1.102:8080/MJServer/login,请求参数有2个: username :母鸡 pwd :123 1.POST请求细节 ...
随机推荐
- 启动myeclipse出现JVM terminated. Exit code=-1
在启动myeclipse时出现如图: 解决方法 第一种: myeclipse.ini中内存设置过大导致 修改: 256m改成128m,512m 改为 256m. 第二种:在myeclipse.ini ...
- mysql slow 分析工具
慢查询有什么用? 它能记录下所有执行超过long_query_time时间的SQL语句,帮你找到执行慢的SQL,方便我们对这些SQL进行优化. 测试用 MySQL 版本. Serv ...
- HDU 4003 Find Metal Mineral
这个题是POJ1849的加强版. 先说一个很重要的结论,下面两种方法都是从这个结论出发的. 一个人从起点遍历一颗树,如果最终要回到起点,走过的最小权值就是整棵树的权值的2倍. 而且K个人的情况也是如此 ...
- Python开发:模块
在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办法,把这些定义存放在文 ...
- 四丶人生苦短,我用python【第四篇】
1 基本数据类型 数字 int 字符串 str 布尔值 bool 列表 list 元组 tuple 字典 dict >>>type( ...
- 图论trainning-part-2 B. Claw Decomposition
B. Claw Decomposition Time Limit: 1000ms Memory Limit: 131072KB 64-bit integer IO format: %lld ...
- 图论trainning-part-1 A. 最短路
A. 最短路 Time Limit: 1000ms Memory Limit: 32768KB 64-bit integer IO format: %I64d Java class name ...
- 【原】缓存之 HttpRuntime.Cache
1.HttpRuntime.Cache HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了.但是非 Web 应用也是可以拿来用的. ...
- 北京师范大学第十五届ACM决赛-重现赛
Another Server 时间限制:1秒 空间限制:262144K 题目描述 何老师某天在机房里搞事情的时候,发现机房里有n台服务器,从1到n标号,同时有2n-2条网线,从1到2n-2标号,其中第 ...
- 【Luogu】P2331最大子矩阵(DP)
题目链接 这题的状态转移方程真是粗鄙. f[i][j][k]表示前i行用了j个矩阵状态为k的时候的最大值. k=0:两列都不选. k=1:取左弃右. k=2:选右弃左. k=3:左右都选,但分属于两个 ...