In AngularJS können keine Header in der Anfrage angegeben werden

8

Ich habe 2 Teile in meiner App - Angular Frontend und Rails Server. Da es sich um unterschiedliche Domänen handelt, funktionieren Anforderungen standardmäßig nicht. Es gibt eine Menge Leute, einschließlich Stack, aber es funktioniert nicht für mich.

Dies ist meine Methode im Winkelregler:

%Vor%

Ich habe die Transformationsdaten kommentiert, es gibt keinen Unterschied in der Serverantwort.

Und ich konfigurierte App (sah das in einem Post) so:

%Vor%

Ich denke, das macht Anfrage nicht Ajax wie (aber ich bin mir nicht sicher).

Aber meine Anfrage enthält keine Kopfzeilen. Sie alle in einem Feld Access-Control-Request-Headers:access-control-allow-origin, accept, access-control-allow-headers, access-control-allow-methods, content-type :

%Vor%

Chrome-Konsole:

%Vor%

Andere unbedeutende Informationen: Auf dem Server:

%Vor%

Routen sind offensichtlich post "session/create" . Und Sitzungscontroller:

%Vor%

Ich verwende die neueste Version von angular 1.2.0.rc-2. das ist mein Projekt auf github

    
zishe 08.10.2013, 12:30
quelle

1 Antwort

7

Sie mischen die Anforderungs- und Antwortheader in Ihrem Beispiel.

Wenn Sie eine Cross-Domain-Anfrage (CORS) durchführen und etwas anderes als ein einfaches GET machen möchten - also zum Beispiel einen POST oder benutzerdefinierte Header hinzufügen - wird der Browser zuerst eine OPTIONS-Anfrage stellen. Das sehen Sie in Ihrer Entwicklerkonsole:

%Vor%

Der Server sollte dann die entsprechenden Header zur Antwort der OPTIONS-Anfrage hinzufügen.

Sie können also die benutzerdefinierten Header aus dem Angular-Aufruf entfernen. Als nächstes müssen Sie sicherstellen, dass Ihr Server / Ihre Anwendung die OPTIONS-Anfrage beantwortet und keine 404 zurückgibt.

    
Thomas 08.10.2013, 14:13
quelle