加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJs 与服务器通信 $http, $q, $resource

发布时间:2020-12-17 10:39:37 所属栏目:安全 来源:网络整理
导读:$http服务是AngularJS系统自带的,可以用来进行网络通信、获取远程服务器的数据。要记住的是,$http是对浏览器XMLHttpRequest的封装,也就是说,它其实是Ajax。 $http(options).success(successFn).error(errorFn) options:包括url、method(get或post) su

$http服务是AngularJS系统自带的,可以用来进行网络通信、获取远程服务器的数据。要记住的是,$http是对浏览器XMLHttpRequest的封装,也就是说,它其实是Ajax。

$http(options).success(successFn).error(errorFn)

  • options:包括url、method(get或post)
  • successFn:成功的回调
  • errorFn:失败的回调

$http(options)返回的是一个被封装的promise对象,promise.then(function(data){},function(err){})

q服务。">defered对象:

angular-resource.js中的ngResource模块中提供了一个provider $resource。

$resource服务是一个创建资源对象的工厂,用来创建同服务端交互的对象,因此我们并不是直接使用$resource服务本身同服务器通信,而是通过其创建的对象来和服务端通信。

/path/greet?salutation=hello。如果参数的任何一个值是函数,它将作为每一次请求获取的参数值而被执行。

var User = $resource('/api/users/:userId',{userId: '@id'});

$resource服务提供的默认actions有5个:

actions: { 'get': {method: 'GET'}, 'save': {method: 'POST'}, 'query': {method: 'GET',isArray: true}, 'remove': {method: 'DELETE'}, 'delete': {method: 'DELETE'} }

User对象包含两个get方法,三个非get类型方法:

User.get({id: '123'},successFn,errorFun); // 请求地址/api/users/123

User.query(params,successFun,errorFun); // 请求多条数据

User.save(params,payload,errorFun); // params用于填充url变量, payload是请求体

User.delete(params,errorFun); // delete请求

User.remove(params,errorFun); //delete请求, 移除多条数据

除了这5种默认actions,我们还可以自定义扩展action,

$resource( url,{},{

sendEmail: {

method: 'POST',

url: '',

params: {},

isArray: boolean,

transformRequest: 函数或函数数组,// function(data) {return angular.toJson(data); } 把对象转换成json字符串

transformResponse: 函数或函数数组,// function(data) {return angular.formJson(data);} 把json字符串解析为一个对象

interceptor: {

    response: function(d){}

    responseError: function(d){}

  }

}

})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读