gpt4 book ai didi

angularjs - 如何使用 transformRequest 和 transformResponse 修改 $resource 的数据?

转载 作者:行者123 更新时间:2023-12-03 14:59:21 25 4
gpt4 key购买 nike

我正在使用 JSONAPI兼容 API,格式要求之一是所有数据(传入和传出)必须包装在 data 中。目的。所以我的请求看起来像:

{
"data": {
"email": "email@example.com",
"password": "pass",
"type": "sessions"
}
}

我的回应如下:
{
"data": {
"user_id": 13,
"expires": 7200,
"token": "gpKkNpSIzxrkYbQiYxc6us0yDeqRPNRb9Lo1YRMocyXnXbcwXlyedjPZi88yft3y"
}
}

在我的 Controller 中,当发出新的 session 请求时,我有:
$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'

还有我的 Session是一个看起来像的工厂:
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

请求没问题。格式化和解析似乎有效。但是,响应时,我 log它显示为 Resource ,不是 Object .和 session.token即使服务器返回有效数据,也显示为未定义。

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

最佳答案

我认为您想要的是通过 promise 捕获您的资源响应:

session.$save().$promise.then(function (result) {
console.log (result);
});

关于angularjs - 如何使用 transformRequest 和 transformResponse 修改 $resource 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29520683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com