Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Backbone.js backbonejs collection.fetch错误处理程序_Backbone.js_Error Handling_Fetch - Fatal编程技术网

Backbone.js backbonejs collection.fetch错误处理程序

Backbone.js backbonejs collection.fetch错误处理程序,backbone.js,error-handling,fetch,Backbone.js,Error Handling,Fetch,下面的backbone collection.fetch代码会因某种原因触发错误,然后跳转到错误处理程序(如预期的那样),但我不知道errorhandler参数是什么。触发错误时,模型、xhr和选项参数未定义。我做错了什么 var onErrorHandler = function(model, xhr, options) { alert(options); }; that.collection = new MembersCollection([]); that.

下面的backbone collection.fetch代码会因某种原因触发错误,然后跳转到错误处理程序(如预期的那样),但我不知道errorhandler参数是什么。触发错误时,模型、xhr和选项参数未定义。我做错了什么

  var onErrorHandler = function(model, xhr, options) {
      alert(options);
  };

  that.collection = new MembersCollection([]); 
  that.collection.fetch({ success : onDataHandler, error: onErrorHandler, dataType: "jsonp" });

@muistooshort:我完全忘记了js参数,谢谢你的提示

这是我发现的

Arguments[0] = looks like its just the letter "d"
Arguments[1] = is an object. Has readyState, responseText, status, statusText
Arguments[2] = is an object. Exactly the same as [1]
状态=200,文本为“OK”。responseText是我期望从PHP服务器模型接收的确切JSON数据


所以我想现在的问题是,为什么collection.fetch方法会将成功结果发送给错误处理程序?我不相信这些处理程序在获取回调中的顺序是重要的。是吗?

好的,我找到了获取回调和成功/错误处理程序的参数签名。既然这些设置正确,提取工作就如预期的那样进行。这是工作代码

  var onDataHandler = function(collection, response, options) {
      console.log('membersview fetch onedatahandler');
      that.render();
  };

  var onErrorHandler = function(collection, response, options) {
      console.log('membersview fetch onerrorhandler');
      alert(response.responseText);
  };

  that.collection = new MembersCollection([]); 
  that.collection.fetch({ success : onDataHandler, error: onErrorHandler });

谢谢你们的回复。我非常需要/感谢你的建议:-)

你确定它们都是未定义的吗?您始终可以
console.log(arguments)
查看传递的确切内容。您缺少了jsonp请求所需的一些ajax选项@muistooshort:我完全忘记了js参数,谢谢你的提示。这是我发现的…不,取回回调的顺序无关紧要,只是测试了一下,结果是一样的。出于某种原因,似乎每次都会将成功结果返回给错误处理程序。我认为第一个参数应该有一个填充的“models”集合。我看到一个models数组,但它的长度为0,所以这里也有一些问题。responseText有两个JSON格式的模型。我对collection.fetch方法的作用感到非常困惑。