gpt4 book ai didi

javascript - Angular $resource 总是调用成功回调

转载 作者:行者123 更新时间:2023-11-30 17:11:32 25 4
gpt4 key购买 nike

我对 Angular $resource 有疑问。我将它与启用了 CORS 的 API 服务器一起使用。

无论服务器返回什么错误代码(尝试过 500、422、409)资源总是调用成功回调。

Controller 中的 Action :

@SpacePostsService.save { spaceId: @space._id }, @post, @_createSuccess, (errors)=>¬
@_createError(errors, form)

其中 SpacePostsService:

SpacePostsService = $resource postsUrl, {},¬
query:¬
isArray: true¬
method: 'GET'¬
responseType: 'json'¬
transformResponse: (data, headers)->¬
results = data.results || data¬
results = [results] unless _.isArray(results)¬
results

有人知道我做错了什么吗?

附言。出于可读性目的,我没有显示所有代码,SpacePostService 是一个工厂,它已正确注入(inject)到 Controller 中。

最佳答案

终于找到问题所在了。原来我在其他地方定义了全局拦截器:

AjaxInProgress =
request: (config)->
$rootScope.$broadcast 'ajax:in-progress'
config
response: (response)->
$rootScope.$broadcast 'ajax:finished'
response
responseError: (response)->
$rootScope.$broadcast 'ajax:finished'
return response

responseError 方法中的最后一行是最重要的一行 - 因为我没有拒绝 promise 所以 Angular 认为我从错误中恢复了并且它在 $resource 函数中调用了成功回调。我将 AjaxInProgress 的最后一行更改为:

responseError: (response)->
$rootScope.$broadcast 'ajax:finished'
$q.reject(response)

它解决了这个问题。

谢谢大家的帮助。

关于javascript - Angular $resource 总是调用成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26907979/

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