When using the YUI3 Autocomplete widget with a URL source which returns JSON data, is there a simple way to detect HTTP error responses?
Example:
Y.one('#ac-input').plug(Y.Plugin.AutoComplete, {
resultHighlighter : 'phraseMatch',
source : "http://example.com/api/item/search/?q={query}",
});
(For example, if the user hasn’t authenticated on that server, the Autocomplete widget receives a 401 response and fails silently but logs the error to the console.)
I’ve searched but haven’t found documentation specific to this issue – source diving didn’t help, either. I think I’ll have to roll my own datasource object so I can issue the request and detect the error.
Or is there a simpler way to pass an error event handler to the YUI3 Autocomplete widget for this type of data source?
Edit: See my follow-up answer for a simple solution using Y.on('io:failure').
A simple solution: use a global IO failure event handler. It works without the complexity of the
DataSource.IOobject as described in this answer.While I would rather handle the error locally in the AutoComplete widget event handlers, alas, I’ve not found a simple way to do that.
Using
Y.on('io:failure')event handling may be a much more direct approach if all you need to do is display info about comms errors.Rationale: I’ve found that using the DataSource.IO method outlined in this answer may introduce significant complexity, so if you have simple needs, this method is expedient and works with simple AutoComplete configurations — thus you can keep your AutoComplete config simple and still handle IO errors…