autocomplete - 如何使用 YUI3 自动完成小部件处理远程数据源错误?

标签 autocomplete error-handling yui yui3

当使用带有返回 JSON 数据的 URL 源的 YUI3 自动完成小部件时,是否有一种简单的方法来检测 HTTP 错误响应?

示例:

Y.one('#ac-input').plug(Y.Plugin.AutoComplete, {
    resultHighlighter : 'phraseMatch',
    source : "http://example.com/api/item/search/?q={query}",
});

(例如,如果用户尚未在该服务器上进行身份验证,则自动完成小部件会收到 401 响应并静默失败,但会将错误记录到控制台。)

我已经搜索过,但没有找到专门针对此问题的文档 - 源代码挖掘也没有帮助。我认为我必须滚动自己的数据源对象,以便我可以发出请求并检测错误。

或者是否有更简单的方法将错误事件处理程序传递给此类数据源的 YUI3 自动完成小部件?

编辑:参见my follow-up answer使用 Y.on('io:failure') 获得简单的解决方案。

最佳答案

我认为Y.DataSource是传递错误处理程序的简单方法。您应该能够执行以下操作:

var ds = new Y.DataSource.IO({
  source: 'http://example.com/api/item/search/'
});

ds.set('ioConfig', {
    on: {
        failure: function (transactionID, ioResponseObj, args) {
            ...
        }
    }
};

Y.one('#ac-input').plug(Y.Plugin.AutoComplete, {
  requestTemplate: '?q={query}',
  source: ds
});

这是通过查看 failureHandler 末尾的“apply”函数调用得出的。 .

当然请注意Same Origin policies申请。

关于autocomplete - 如何使用 YUI3 自动完成小部件处理远程数据源错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9989139/

相关文章:

javascript - 动态添加的 JavaScript 在 IE 中找不到动态添加的字段

javascript - 使用 YUI 更改 IE 8 中脚本标签的内容

javascript - 可过滤的自动完成,在 Flask 中使用 ajax

php - 来自 SQL 表的 AJAX 自动完成?

javascript - 当搜索词发生变化时,AJAX 自动完成列表无法更新?

asp.net - 如何防止 ASP.NET 记录身份验证失败?

express - 使用Node.js/Express,是否可以从IIFE内部next()错误并前进至错误处理中间件?

emacs - Emacs 中用于 C、C++ 和 JAVA 的 Eclipse 样式函数完成?

com - 如何从 ATL activex 控件向 VB6 返回错误字符串和错误代码?

java - 关于在Java应用程序中执行javascript后处理的问题