Вот кто-то, кто испачкал руки этим вопросом:
http://www.webmasterworld.com/javascript/3195000.htm
Один из основных способов исследования этих вопросов - взглянуть на исходный код библиотеки javascript, такой как jQuery, поскольку одна из функций библиотеки заключается в обработке различий. Вот фрагмент jQuery, который имеет дело с XMLHttpRequest. Обратите внимание на комментарии о различиях в браузере.
// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
// Open the socket
// Passing null username, generates a login popup on Opera (#2865)
if( s.username )
xhr.open(type, s.url, s.async, s.username, s.password);
else
xhr.open(type, s.url, s.async);
// Need an extra try/catch for cross domain requests in Firefox 3
try {