Immaginiamo di avere una stringa contenente un URL nel quale i parametri della query string sono separati, invece che da '&', da '&'
(per il momento sorvolerei sui motivi di ciò... )

Ad es.
codice:
var stringa = 'http://nomeServer/pagina.jsp?par1=X&par2=y';
Dove però, attenzione, par1 e par2 sono DUE parametri distinti!!

Ora, se io passo quella stringa al location.href, il server riceve la query string correttamente:
codice:
document.location.href = stringa;
Sulla barra dell'indirizzo del browser compare:
http://nomeServer/pagina.jsp?par1=X&par2=y

Se invece uso quella stringa per fare una chiamata asincrona, l'entità html non viene decodificata...
codice:
var ajax = new XMLHttpRequest();
ajax.open('GET', stringa, true);
ajax.send(null);
In questo caso al server la query string arriva con l'entità html invariata, il che non permette di riconosce par2 come parametro distinto. Ovviamente in questa situazione non appare nulla sulla barra dell'indirizzo, ma attraverso una serie di test sono riuscito a capire che questo è ciò che accade.

Ora, la domanda è: a cosa è dovuta questa differenza? Qual è la funzione da richiamare per decodificare le entità html dalla stringa che mi serve?


P.S. Il comportamento è verificato con IE 6.0. Al momento non sono in grado di effettuare prove con altri browser