Ich habe einen Server mit HTTP-Basisauthentifizierung und ich habe ein Client-Skript, das den Benutzernamen und das Passwort für den obigen HTTP-Server kennt. Ich benutze XHR
request und es ist setRequestHeader
um Autorisierungsheader zu setzen, dieses Bit verhindert, dass der Browser den Standard-HTTP-Login-Dialog aufruft.
Das ist normal für AJAX-Anfragen , aber für den Fall, dass ich die Datei vom erwähnten Server herunterladen möchte und gezwungen bin, ohne AJAX zu gehen und etwas wie window.location.href
zu verwenden von JavaScript, wo der Browser die Anfrage selbst erstellt. Da diese Anfrage keinen Authorization-Header enthält (bruwoser fügt den Authorization-Header für jede Anfrage automatisch hinzu, nachdem er den Login-Dialog aufgerufen und base64 der Login-Informationen für den aktuellen Server gespeichert hat), fordert der Browser den HTTP-Login-Dialog auf, den ich vermeiden möchte >
Gibt es also eine Möglichkeit, Header auf non-ajax Anfragen zu setzen, die vom Browser erstellt wurden?
Haben Sie versucht, den Benutzernamen und das Passwort in der URL zu setzen?
%Vor%Ich denke, das sollte in den meisten Browsern funktionieren, außer leider Internet Explorer 7+ .
Wenn Sie Zugriff auf den Server haben, können Sie alternativ ein Skript auf die Serverseite stellen, das Cookies zur Authentifizierung verwendet. Cookies können mit JavaScript eingestellt werden.
Tags und Links javascript authentication http browser http-headers