AngularJS 的 $http 和 $resource 使用详解

AngularJS 是一款流行的前端开发框架,它提供了 $http 和 $resource 这两个服务,用于进行 Ajax 请求和 RESTful API 的访问。在本文中,我们将详细介绍它们的使用方法以及一些注意事项。

$http

$http 是 AngularJS 提供的用于发送 Ajax 请求的服务,它支持 GET、POST、PUT、DELETE 等 HTTP 方法,并且可以设置请求头、请求参数、请求体等信息。下面是一个简单的示例:

在这个示例中,我们发送了一个 GET 请求,访问了 /api/users 接口,并且传递了两个查询参数 page 和 limit。当请求成功返回时,我们打印了响应数据;当请求失败时,我们打印了错误信息。

除了上述示例中的参数之外,$http 还支持以下配置项:

  • headers:请求头,可以是一个对象或者一个函数,返回一个对象;
  • data:请求体,可以是一个对象或者一个字符串;
  • timeout:请求超时时间,单位为毫秒;
  • cache:是否启用缓存,可以是一个布尔值或者一个缓存对象;
  • transformRequest:请求数据转换函数,可以是一个函数或者一个数组,每个元素都是一个函数;
  • transformResponse:响应数据转换函数,可以是一个函数或者一个数组,每个元素都是一个函数。

需要注意的是,$http 返回的是一个 Promise 对象,因此我们可以使用 then 方法和 catch 方法来处理请求成功和失败的情况。

$resource

$resource 是 AngularJS 提供的用于访问 RESTful API 的服务,它基于 $http 实现,但是提供了更为简洁的 API。下面是一个简单的示例:

在这个示例中,我们定义了一个 User 对象,它代表了一个 RESTful 资源,访问的 URL 是 /api/users/:id,其中 :id 是一个占位符,表示资源的 ID。我们使用 get 方法获取 ID 为 1 的用户信息,并且使用 save 方法创建一个新的用户。

除了上述示例中的方法之外,$resource 还支持以下方法:

  • query:获取资源列表;
  • remove:删除资源;
  • delete:删除资源(别名);
  • update:更新资源;
  • get:获取单个资源;
  • save:创建资源。

需要注意的是,$resource 返回的是一个对象,它具有上述方法以及 $promise 属性,$promise 属性是一个 Promise 对象,因此我们可以使用 then 方法和 catch 方法来处理请求成功和失败的情况。

总结

在本文中,我们介绍了 AngularJS 的 $http 和 $resource 服务的使用方法,它们分别用于发送 Ajax 请求和访问 RESTful API。$http 支持更为灵活的配置,但是需要编写更多的代码;$resource 提供了更为简洁的 API,但是不支持一些高级配置。在实际开发中,我们可以根据具体的需求选择适合的服务。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6559a3aed2f5e1655d40df54


纠错
反馈