我正在使用AngularDart网络应用程序。 我需要从与cookie身份验证一起工作的json服务器检索cookie。 因此,在连接时,我必须将凭据发布到正文中,然后服务器将包含cookie的响应返回给我。
import 'package:http/browser_client.dart';
Response response = await _http.post(_loginUrl, body: json.encode(datas));
响应正常,我从服务器收到200个状态码和json响应,但是在邮递员中确实找到它却无法找到cookie。 那么如何从响应中检索Cookie?
编辑:信息从服务器返回到邮递员:
ASP.NET_SessionId=03e95c12-6098-4f07-b9a9-054377b0311d; path=/; domain=.www.xxxxx.fr; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;
编辑:这是从服务器到Dart应用程序的原始标头:
t=1462088 [st=142] HTTP_TRANSACTION_READ_RESPONSE_HEADERS
--> HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/8.5
Set-Cookie: ASP.NET_SessionId=f229a77e-5eb6-4c6c-9c57-9280947cb434; path=/; HttpOnly
X-Powered-By: ASP.NET
Access-Control-Allow-Origin: *
Date: Fri, 30 Nov 2018 09:52:50 GMT
Content-Length: 22443
因此服务器将cookie发送回去,但浏览器似乎没有将其保存...
好吧,最后,在API服务器上发现了一个问题,开发人员没有正确检查cookie。通常,只有一个cookie发送到该服务器,因此在它的代码中,它是第一个...但是从浏览器中,可以同时发送多个cookie。因此,他做了一些更改以检查好人...
答案 0 :(得分:0)
邮递员应证明这是一个HttpOnly
Cookie,无法从JavaScript读取(当然,Dart也是如此)
另请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#Secure_and_HttpOnly_cookies
该cookie将自动发送回服务器,因此无需从JavaScript读取它。允许从JavaScript访问只会破坏安全性。