[ Sorry for the cross-post -- I originally sent this to the wrong list. ]

Hi.

The current working draft of the XMLHttpRequest spec says the following about responseXML and responseText.

responseText:
If the state is not LOADING or DONE raise an INVALID_STATE_ERR exception and terminate these steps.

responseXML:
If the state is not DONE raise an INVALID_STATE_ERR exception and terminate these steps.

While implementing this specification in WebKit, we gathered the following pieces of data:

1. This specification breaks at least one AJAX library, used by greenfieldonline.com.

2. This specification does not match any shipping version of Safari or Firefox, which do not throw exceptions.

3. This specification does not match any shipping version of Internet Explorer, which throws exceptions in some of these conditions, but not all. (The specifics here are a little weird, so I'll leave them out.)

4. Generally speaking, throwing an exception, which aborts a program, is a much bigger compatibility risk than not throwing an exception.

Therefore, for WebKit, I've decided that the most compatible and least weird behavior is not to throw an exception when accessing responseText or responseXML. Rather, for responseText, return the empty string, and for responseXML, return null.

Would you be willing to consider editing the XMLHttpRequest spec to match this behavior?

Thanks,
Geoff


Reply via email to