2009-10-30 23 views
10

Ich versuche XMLHTTPRequest zu verwenden, um ein Update auf Twitter zu erhalten.Grundlegende Authentifizierung mit XMLHTTPRequest

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

jedoch meine Sniffer verwenden kann ich sehen, keine Genehmigung Header durchlaufen werden. Daher bekomme ich eine 401 Fehlerantwort von Twitter.

Der Account und das Passwort sind korrekt eingegeben.

Wer versucht das? Kann mir jemand ein paar Hinweise geben? Vielen Dank.

Antwort

1

Aufgrund der Ursprungsrichtlinie können Sie keine XMLHttpRequest von Ihrer Domäne in eine andere Domäne erstellen. Z.B. Sie können http://twitter.com/... URLs nur verwenden, wenn Ihr Skript von twitter.com geladen wurde. Wenn Ihr Skript von http://localhost/ geladen wird, muss die AJAX-Anfrage auch zu localhost gehen.

44

Sie müssen nur ein Authorization-Header hinzufügen, einen Benutzernamen und ein Passwort in einer Base64-codierte Zeichenfolge wie folgt.

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

Sollte der 'Klient' im Code-Snippet sei 'XMLReq' (die Variable aus der Frage)? – JaKu

+0

Actualy, ja du hast Recht. Die Methode ist XMLHttpRequest.setRequestHeader (header, value). –

Verwandte Themen