【问题标题】:Abort accessing success callback in backbone model中止访问骨干模型中的成功回调
【发布时间】:2015-10-21 12:51:29
【问题描述】:

我有一个由以下解析方法组成的主干模型。

parse: function(response, options){

    // Handling Error for http response 200
    if( response.Reasons && response.Reasons[0] ){
        var errorResponse = {
            responseJSON: {
                reasons: [
                    {
                        code: response.Reasons[0].ReasonCode,
                        reason: ''
                    }
                ]
            }
        }
        options.error( errorResponse );                                                
        return errorResponse;
    }
}

我的问题是,我的网络服务不会为错误提供 http 响应 500。我需要从响应中检查并决定。但问题是,上面的代码运行了错误回调,但之后它也进入了成功回调。我需要阻止它。

我收到来自服务器的 json 响应,类似于以下

{Data: {some data}}

错误

{Data: {}, Reasons: [{error code}]}  

请让我知道我该怎么做。提前致谢

【问题讨论】:

  • 错误情况下的响应(正文)是什么?发个例子
  • 成功:{Data: {some data}} 错误:{Data: {},原因:[{error code}]}
  • 请发帖提问

标签: javascript backbone.js


【解决方案1】:

Backbone 默认期望响应为JSON,因此如果服务器返回JSON,则会触发成功回调。不覆盖backbone的fetch方法,就无法停止触发成功。

【讨论】:

  • 问题是,我有一个基本模型类,所有其他模型都扩展了这个基本模型。这就是为什么我要更改基本模型的解析方法,这样我就不必更改获取、保存或其他方法。我现在有什么选择?
  • 你不能停止解析 :( ,但是当出现错误时发送纯文本,因为它默认不是 json 触发错误但不成功
  • 不允许更改服务器响应。我试图从一个共同的地方管理这个。如果没有,我必须努力做到这一点。
  • 覆盖同步似乎是唯一的解决方案
  • 谢谢,看来同步是解决我问题的正确地方
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2014-03-15
相关资源
最近更新 更多