[jQuery] Handling errors when ajax returns html

[jQuery] Handling errors when ajax returns html


[Apologies if this shows up twice; didn't see it after 5 hours+, sending again]
I have some server-side code that responds to certain ajax requests by
returning the html of new rows to insert into an existing table. This
works really well, but I've been thinking about ways to handle
"errors" on the server side. By "errors" I mean both actual bugs, and
business rule violations that mean you can't save a record (for
instance).
Prior ajax apps I've done have returned xml data that gets rendered by
the client, not html. Each response has both data and status sections,
and status does nicely for passing back errorCode, errorText, and
errorDetails.
In my current case, the expected ajax response is pretty specific dom
content -- a set of table rows, as html. It can't just suddenly be the
html of a failure alert, or an xml or json data structure, at least
not with establishing some conventions about how the client can know
that that's what it is.
If we want to stay in the html-response domain, I was thinking of
having two classes of non-dom-insert response, indicated by containing
the response in a div with an agreed-upon css class. So if the
response starts with <div class="ajaxMsg">, the client should present
it as an unobtrusive msg to the user (jGrowl etc), instead of doing
whatever it usually does with these responses. Similarly, if it starts
with <div class="ajaxError">, it should be presented as a blocking,
in-your-face "dialog".
An alternative would be for the server no to return html in these
cases, but instead return xml or json with some agreed-upon structure,
which the client would then package visually. That would standardize
the structure and appearance of these msgs, instead of relying on
server-side code to always return similar-looking content (you could
standardize that on the server side instead), at the cost of encoding
the info on the server and decoding it on the client, and some
restriction on the structure of what you could return.
A third alternative, similar to the xml/json strategy, would be for
the server to deliver error/msg content as http headers, a "parallel
channel" alongside the expected html. That's super easy to do on the
server (ColdFusion back end), but so far, I haven't figure out how to
access the http headers in a jQuery ajax response. (There's a separate
thread here about this, no responses yet.)
How do you folks generally handle this? Any best practices to follow,
minefields not to fall into? Anything at all standard in jQuery, or
the jQuery community?
Thanks.