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

angularjs – 如何使用transformRequest和transformResponse修改

发布时间:2020-12-17 08:06:15 所属栏目:安全 来源:网络整理
导读:我正在使用符合 JSONAPI标准的API,其中一种格式要求是所有数据(传入和传出)都必须包含在数据对象中。所以我的请求看起来像: { "data": { "email": "email@example.com","password": "pass","type": "sessions" }} 我的回答如下: { "data": { "user_id": 1
我正在使用符合 JSONAPI标准的API,其中一种格式要求是所有数据(传入和传出)都必须包含在数据对象中。所以我的请求看起来像:
{
  "data": {
    "email": "email@example.com","password": "pass","type": "sessions"
  }
}

我的回答如下:

{
  "data": {
    "user_id": 13,"expires": 7200,"token": "gpKkNpSIzxrkYbQiYxc6us0yDeqRPNRb9Lo1YRMocyXnXbcwXlyedjPZi88yft3y"
  }
}

在我的控制器中,当进行新的会话请求时,我有:

$scope.signin = ->
  session = new Session
    email: $scope.user.email
    password: $scope.user.password

  session.$save()

  console.log session
  console.log session.token
  if not session.token
    alert 'Invalid Login'
  else
    $rootScope.session_token = session.token
    $state.go 'app.dashboard'

我的会话是一个工厂,看起来像:

angular.module('webapp').factory 'Session',[
  '$resource'
  ($resource) ->
    $resource 'http://localhost:9500/v1/sessions',id: '@id',save:
        method: 'POST'
        transformRequest: (data) ->
          result =
            data: JSON.parse JSON.stringify data
          result.data.types = 'sessions'
          result = JSON.stringify result
          result
        transformResponse: (data) ->
          result = JSON.parse data
          a = JSON.parse JSON.stringify result.data
          console.log a
          a

请求是罚款。格式化和解析似乎有效。但是,当我记录它的响应显示为资源,而不是对象。即使服务器返回有效的数据,session.token显示为未定义。

如何修改我的transformResponse来解释这个问题?

我想你想要的是用承诺捕获你的资源回应:
session.$save().$promise.then(function (result) {
    console.log (result);
});

(编辑:李大同)

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

    推荐文章
      热点阅读