【发布时间】:2026-01-04 12:05:01
【问题描述】:
以下主干collection.fetch 代码触发,由于某种原因出错,然后跳转到错误处理程序(如预期的那样),但我真的不知道错误处理程序参数是什么。触发错误时,模型、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 方法将成功结果发送到错误处理程序?我不相信 fetch 回调中这些处理程序的顺序很重要。是吗?
【问题讨论】:
-
你确定他们都是
undefined吗?您可以随时console.log(arguments)来查看传递的具体内容。 -
您缺少一些 jsonp 请求所需的 ajax 选项。 *.com/questions/7202603/jquery-ajax-jsonp
-
@muistooshort:我完全忘记了 js 参数,谢谢你的提示。这是我发现的……
-
不,获取回调的顺序无关紧要,只是经过测试,结果相同。由于某种原因,似乎每次都将成功结果返回给错误处理程序。
-
我认为第一个参数应该有一个填充的“模型”集合。我看到一个模型数组,但它的长度为 0,所以那里的东西也不起作用。 responseText 有几个 JSON 格式的模型。我很困惑这个 collection.fetch 方法在做什么。
标签: backbone.js error-handling fetch