Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ';错误';无论http状态代码如何,都会在我的主干模型上触发事件_Javascript_Ajax_Backbone.js - Fatal编程技术网

Javascript ';错误';无论http状态代码如何,都会在我的主干模型上触发事件

Javascript ';错误';无论http状态代码如何,都会在我的主干模型上触发事件,javascript,ajax,backbone.js,Javascript,Ajax,Backbone.js,我正在尝试创建一个基本主干模型来处理所有http错误。以下是模型的代码: define(function(require) { 'use strict'; var Backbone = require('backbone'); var BaseModel = Backbone.Model.extend({ initialize: function(attributes, options) { options || (options = {}); t

我正在尝试创建一个基本
主干
模型来处理所有http错误。以下是模型的代码:

define(function(require) {
  'use strict';

  var Backbone = require('backbone');

  var BaseModel = Backbone.Model.extend({
    initialize: function(attributes, options) {
      options || (options = {});
      this.bind("error", this.defaultErrorHandler);
      this.init && this.init(attributes, options);
    },

    defaultErrorHandler: function(model, error) {
      if(error.status === 401 || error.status === 403 || error.status === 500) {
        console.log(error.status);
      }
    }
  });
  return BaseModel;
});

显然,无论
http
调用发生什么,都会触发
error
事件。即使我从服务器上得到一个
200
,我仍然会点击我的
defaultErrorHandler
。有人能解释一下我所附加的
错误
事件的真正作用吗?另外,是否有某种我可以订阅的事件只会给我真正的错误?

主干网的保存方法将失败,如果:它没有从服务器获得200响应;该模型有一个名为
validate
的方法,该方法返回false。虽然文档没有明确说明这一点,但如果您保存一条新记录,我认为它会返回一个属性散列,其中包括一个“id”属性,该属性应该是一个整数。如果该记录丢失,主干网可能会认为无法在服务器端保存该记录。

建议只有在保存调用失败时才会触发该记录。我不知道主干,但很多东西都会在HTTP 200响应上返回失败代码(关于是返回200还是其中一个HTTP失败代码,存在着一场激烈的争论)。可能是由于服务器端原因导致save失败,并在200响应中返回错误?我可以访问服务器,并且一切正常。我认为这是对
error
事件的某种误解。在调用fetch函数时,如果没有特定的错误处理,那么将调用jquery的ajax,并调用error事件。我建议您可以编写一个测试方法,只需使用jquery的$.ajax调用您的服务器,看看它是否工作。@jhamm:“我认为这是对错误事件的某种误解”Dunno,该链接所说的一点很清楚,它只在失败时被调用。祝你好运,@T.J.Crowder,你是对的,这很清楚,这不是我最聪明的说法。我查看了
主干
文档,当服务器上的模型保存调用失败时,它会显示
“错误”(model,xhr,options)。如果我的客户返回的是
200
,它如何知道保存是否失败?