Autenticazione di base con XMLHTTPRequest

Sto tentando di utilizzare XMLHTTPRequest per ottenere un aggiornamento su Twitter.

var XMLReq = new XMLHttpRequest(); XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password"); XMLReq.send(null); 

Tuttavia, usando il mio sniffer non riesco a vedere nessuna intestazione di authorization passata. Quindi, ottengo una risposta di errore 401 da Twitter.

L’account e la password sono stati inseriti correttamente.

Qualcuno tenta questo? Qualcuno può darmi qualche suggerimento? Grazie.

Hai solo bisogno di aggiungere un’intestazione di authorization, un nome utente e una password in una stringa codificata Base64 come segue.

 XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 

Nelle richieste di origine incrociata, è necessario impostare esplicitamente il flag withCredentials se si desidera che le credenziali dell’utente vengano inviate.

Vedi http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute (dove le credenziali dell’utente includono l’autenticazione HTTP)

A causa della politica di origine , non puoi effettuare una richiesta XMLHttpRequest dal tuo dominio a un altro dominio. Ad esempio, non puoi utilizzare gli URL http://twitter.com/... meno che il tuo script non sia stato caricato da twitter.com . Se lo script è caricato da http://localhost/ , anche la richiesta AJAX deve andare su localhost.