Ich verwende angular2 und yii2 restful services, aber es schlägt fehl
Das ist mein angular2 Teil
%Vor%Dies ist der httpclientService
%Vor%Dies ist mein Backend in Yii2
%Vor%Und die yii2-Aktion schlägt fehl und gibt einen Fehler durch unbefugten Zugriff zurück
%Vor% Wenn ich Yii::$app->request->headers;
Wie Sie sehen können, ist das Bearer-Token
gesetztDies ist mein Benutzermodell
%Vor%Warum gibt es weiterhin einen Fehler 401 unberechtigten Zugriff zurück und doch, wenn ich den gleichen Wert von Authkey benutze und Autorisierungsträger-Header im Postboten setze, funktioniert es
Nach ein paar Nachforschungen fand ich heraus, dass jedes Mal, wenn angular2 eine Anfrage stellt, eine Optionsanfrage gesendet wird, die fehlschlägt
Für diejenigen, die mit diesem Problem konfrontiert sind, habe ich herausgefunden, dass dies durch die HttpBearerAuth verursacht wurde und als ich zu QueryParamAuth
gewechselt habe, funktioniert jetzt auch ich ein paar andere Änderungen als
2, In meiner config main.php
%Vor%3.In der .htaccess Datei im Projektstamm habe ich
hinzugefügt %Vor%Also meine angular2 post Anfrage sieht wie
aus %Vor%Daher wird das Zugriffstoken immer als Abfrageparameter
übergebenDer Hauptgrund ist, weil ich herausgefunden habe, dass, wenn der Browser eine Kopfzeile neben dem Inhaltstyp sendet, eine Optionsanfrage ausgelöst wird
Jetzt sehen meine Header wie
aus %Vor%Ich habe einen anderen Ansatz gewählt:
Hinzugefügt
%Vor%in der Steuerung.
Behalten Sie die Verhaltensfunktion wie bei Ihrer Frage.
Wie Sie bereits erwähnt haben, sendet der Browser eine Preflight-Anfrage.
Ich gehe davon aus, dass Sie eine Cross-Browser-Anfrage stellen (localhost: 4200), so dass der Browser zuerst eine OPTIONS-Anfrage an den Server stellt, um die "Access-Control-Allow" -Einstellungen herauszufinden, aber ohne Zugriffstoken in der Kopfzeile. So wird ein 401 ausgelöst und der CORS-Prozess wird unterbrochen.
Der Unterschied ist, dass Sie auf diese Weise das Berechtigungstoken in einer Kopfzeile haben können.
Tags und Links php rest angular yii2 typescript2.0