2009-01-29 10 views
54

Wo finde ich Referenzcode, der einen HTTP Basic Authentication-Client in reinem JavaScript implementiert, der für AJAX geeignet ist?Reiner JavaScript-Code für die HTTP-Standardauthentifizierung?

Zusätzliche Punkte für Code oder Zeiger auf Code, die unabhängig von JS-Toolkits wie YUI verwendet werden können. Keine Punkte für Java, Flash/Flex, PHP-Frameworks, etc.

+3

Was meinst du reines Javascript? Sie suchen nach einer Möglichkeit, Cookies mit JavaScript zu setzen, ohne dass die Seite neu geladen werden muss? –

+2

Die Standardauthentifizierung verwendet keine Cookies, sondern HTTP-Header. –

Antwort

57

Die Fünf-Parameter-Version der XMLHttpRequest.open-Methode ermöglicht Ihnen, den Benutzernamen und das Kennwort anzugeben.()

xhr.open(method, url, async, username, password) 
23

Es gibt einen guten Artikel/Tutorial geschrieben von Paul James. Ich habe es vor einiger Zeit benutzt und es hat für mich funktioniert.

HTTP Authentication with HTML Forms

[...] XMLHTTPRequest, kann es den korrekten HTTP Auth-Header für uns einreichen. Anstatt die URL anzupassen, die das Formular übermittelt, können wir XMLHTTPRequest verwenden, um eine Anfrage zu machen, bevor das Formular die Eingabe des eingegebenen Benutzernamens und des Passworts übermittelt.

Dies wird den Browser mit den HTTP Auth-Anmeldeinformationen einrichten so wird es auch sich mit unserer tatsächlichen Formulareinreichung Login-Anfrage senden.

+2

Mehr als das, was ich gesucht habe, aber sieht aus wie eine sehr nette Möglichkeit, den Standard-Login-Dialog des Browsers zu ersetzen. –

+2

Ich habe dies versucht und es funktioniert, aber ich bekomme dies in der Chrome-Konsole: Subresource-Anfragen, deren URLs eingebettete Anmeldeinformationen enthalten (zB 'https: // user: pass @ host /') sind veraltet und werden in M59 rund Juni blockiert 2017. Siehe https://www.chromestatus.com/feature/5669008342777856 für weitere Details. Gibt es noch andere Methoden? – David