Eckige 2 - HTTP-basic-auth-Anfrage nicht zu details
Ich habe versucht, mehrere Ansätze, um den Zugriff auf eine API, die mit basic-auth. Das problem ist Eckig 2 ist keine Eingabe von Benutzername und Passwort.
Wenn Sie navigieren Sie zu einer basic auth website, es wird Sie bitten, einen Benutzernamen und ein Passwort und dann auf die meisten browser, die Sie auf Log In
oder Cancel
. Wenn Sie auf Abbrechen klicken, die auf dieser Webseite wird ein string zurückgegeben werden sagen User pressed Cancel
, und das war genau, was ich bekommen, indem Sie es durch Winkel-die HTTP-Anforderung.
In diesem Stadium ist es auch egal, wenn der encode username und Passwort in der Authorization-header korrekt ist, ich muss nur in der Lage sein zu senden, einen Benutzernamen und ein Passwort haben, es zu versuchen, um sich anzumelden.
Irgendwelche Vorschläge?
request() {
let headers = new Headers();
headers.append('Authorization', "Basic dWRpZDM6cGFzc3dvcmQ=");
this.http.get('http://localhost:8888/api/', {
headers: headers
})
.subscribe(
data => this.example = data.text(),
err => this.logError(err.text()),
() => console.log('Request Complete')
);
console.log(this.example);
}
- Läuft dieser code gibt
There was an error: User pressed Cancel
, wie es übergeben wird, mein Fehler-handling-Funktion. - Haben Sie versucht, mit
RequestOptions
? Zum Beispiellet opts: RequestOptions = new RequestOptions(); opts.headers = headers; this.http.get('path', opts)...
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen Autorisierung mit Benutzername & Passwort sollte helfen. Bitte versuchen Sie die folgenden :
Hoffe, das hilft.
Das problem war eigentlich nicht mit Winkel-2 oder JS an alle, die Header waren wurde angehängt und versendet werden. Aber der Apache war nicht die Weitergabe der
HTTP_AUTHORIZATION
auf PHP.Um dies zu beheben musste ich die folgenden in der
.htaccess
auf das API Verzeichnis:und dann musste ich manuell die
PHP_AUTH_USER
undPHP_AUTH_PW
.Den anderen umgehen, erstellen Sie eine PHP-oder Node.js wrapper lokal und senden Sie die Parameter auf, die Seite, von schräg, und dann verwenden Sie diese Seite, um eine
CURL
Anfrage, die auch funktioniert.