2016-03-23 8 views
1

Ich versuche, auf eine Plattform mit REST-API anmelden.Die Plattform Doc über REST-API-Authentifizierung sagen, dass bei der Authentifizierung nach dem Posting die Anmeldeinformationen Sitzung Cookie zurückgeben um auf alle nachfolgenden authentifizierten Anträge zurückzusenden. Das Problem ist, dass ich crossdomain verwende, das mich auf Set-cookie header oder auf cookie header nicht erlaubt. Ich habe viele Dinge versucht, die ich in Foren sah. Dies ist die eigentliche Server-Konfiguration:Zugriff nicht möglich Set-Cookie-Antwort Header und/oder Cookie-Anfrage Header

Access-Control-Allow-Origin:*;Access-Control-Allow-Methods:GET, POST, OPTIONS;Access-Control-Expose-Headers:Set-Cookie;Access-Control-Allow-Headers:Set-Cookie;HttpOnly:false; 

Das ist das Antwort-Header ich nach der Post mit dieser Konfiguration erhalten:

Access-Control-Allow-Headers:Set-Cookie 
Access-Control-Allow-Methods:GET, POST, OPTIONS 
Access-Control-Allow-Origin:http://127.0.0.1:4482 
Access-Control-Expose-Headers:Set-Cookie 
Cache-Control:no-cache, no-store, private 
Connection:keep-alive 
Content-Length:10 
Content-Type:text/plain; charset=utf-8 
Date:Wed, 23 Mar 2016 08:51:02 GMT 
HttpOnly:false 
Server:Wisp/1.0.67.13 
Set-Cookie:fanws=071b2016-2718-f680-7149-000d3ab17336-cea3f199fc0dd453;Path=/ 
X-Frame-Options:SAMEORIGIN 

Der Wert in Set-Cookie-Header wird im Browser nicht automatisch eingestellt und es scheint unmöglich zu sein javascript.When zu erhalten mit I-Typ: console.log(headers.getAllResponseHeaders()); ich sogar den Set-Cookie in der console.All nicht sehen, erhalte ich, ist dies: Content-Type: text/plain; charset=utf-8 Cache-Control: no-cache, no-store, private

ich auch verwenden Seite dieses Konfigurationsservers:

Access-Control-Allow-Origin:http://127.0.0.1:4482;Access-Control-Allow-Methods:GET, POST, OPTIONS;Access-Control-Expose-Headers:Set-Cookie;Access-Control-Allow-Headers:Set-Cookie;HttpOnly:false;Access-Control-Allow-Credentials:true; 

Das einzige, was in Client-Seite geändert hat, ist, dass das Set-Cookie von Response-Header disapeared und ein Cookie-Header den gleichen Wert erschienen in den Request-Header mit: Accept:application/json, text/plain, */* Accept-Encoding:gzip, deflate Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 Connection:keep-alive Content-Length:103 Content-Type:application/x-www-form-urlencoded; charset=UTF-8 Cookie:fanws=071ad3d7-a5ad-4cc0-7ff4-000d3ab17336-d81da7968d36156c Host:******** Origin:http://127.0.0.1:4482 Referer:http://127.0.0.1:4482/Skyspark.html User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36

Und ich habe immer noch das selbe Problem, dass ich nicht auf Cookies zugreifen kann, die vom Server gesendet werden. Kann mir bitte jemand helfen? Vielen Dank.

Antwort

0

Die XHR API forbids direct access to cookie data.

Zurück alle Response-Header, ohne Header, die Groß- und Kleinschreibung Spiel für Set-Cookie oder Set-Cookie2 sind, als einzelne Zeichenfolge, wobei jeder Zeilenkopf durch einen U + 000D CR U getrennt + 000A LF-Paar, ausgenommen die Statuszeile und mit jedem Kopfzeilennamen und Header-Wert getrennt durch ein U + 003A COLON U + 0020 SPACE-Paar.

Sie müssen entweder die Daten zu übergeben eine andere Methode verwenden, oder einfach nur set withCredentials und lassen Sie den Browser die Cookies intern behandeln.