Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dart web app http时获取/设置cookie_Dart_Angular Dart_Dart Html - Fatal编程技术网

使用dart web app http时获取/设置cookie

使用dart web app http时获取/设置cookie,dart,angular-dart,dart-html,Dart,Angular Dart,Dart Html,我正在开发AngularDart web应用程序。 我需要从使用cookie身份验证的json服务器检索cookie。 所以在连接上,我必须在主体中发布凭据,然后服务器返回包含cookie的响应 import 'package:http/browser_client.dart'; Response response = await _http.post(_loginUrl, body: json.encode(datas)); 响应还行,我从服务器上得到了200个状态码和json响应,但在Po

我正在开发AngularDart web应用程序。 我需要从使用cookie身份验证的json服务器检索cookie。 所以在连接上,我必须在主体中发布凭据,然后服务器返回包含cookie的响应

import 'package:http/browser_client.dart';
Response response = await _http.post(_loginUrl, body: json.encode(datas));
响应还行,我从服务器上得到了200个状态码和json响应,但在Postman中我确实得到了cookie,但找不到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。。。但在浏览器中,可以同时发送多个cookie。所以他做了一些更改来检查好的一个…

邮递员应该显示这是一个不能从JavaScript读取的
HttpOnly
cookie(当然,Dart也是如此)

另见


cookie将自动发送回服务器,因此无需从JavaScript读取。允许从JavaScript访问只会破坏安全性。

这就是问题所在,cookie不会自动发送回服务器,我不知道为什么。我尝试使用http和https。可能您正在访问的服务器与发出cookie的服务器不同。不同的端口已被视为浏览器的不同服务器。这正是sameI不知道还有什么可能导致的,但“手动”发送它不是解决方案,它会使通过身份验证保护应用程序的整个尝试无效。最后,我找到了答案。。。。。服务器上有一个错误。。。开发人员已经做了一些更正,现在正在工作。。。。让我发疯,哈哈