Dart Browser客户端帖子不包括我的cookies
我正在跨域发布BrowserClient帖子,没有看到我的cookie被包括在内 这就是我得到的回应: 当我发送另一个POST请求时,我看不到包含cookies: 直接转到测试页面,我可以看到包含的cookies: 我用于制作帖子的Dart代码:Dart Browser客户端帖子不包括我的cookies,cookies,dart,cors,dartium,Cookies,Dart,Cors,Dartium,我正在跨域发布BrowserClient帖子,没有看到我的cookie被包括在内 这就是我得到的回应: 当我发送另一个POST请求时,我看不到包含cookies: 直接转到测试页面,我可以看到包含的cookies: 我用于制作帖子的Dart代码: var client = new BrowserClient(); client.post(url, body: request, headers:{"Content-Type" : "application/json", "Access-C
var client = new BrowserClient();
client.post(url, body: request, headers:{"Content-Type" : "application/json", "Access-Control-Allow-Credentials":"true"}).then((res) {
if (res.statusCode == 200) {
var response = JSON.decode(res.body);
callback(response);
} else {
print(res.body);
print(res.reasonPhrase);
}
}).whenComplete(() {
client.close();
});
不确定我包含的Access Control Allow Credentials头,无论有没有,都不会改变
我是否在服务器端缺少需要在响应中设置的头,或者Dartium是否阻止跨域cookie
更多关于通过服务器设置cookie的详细信息和原因
更新:已记录增强请求:
更新:实现了增强,现在应该能够使用credentials=true执行var-client=new-BrowserClient()代码>基于
对于发送到CORS请求的Cookie,您需要设置with credentials=true
。http
包中的浏览器客户端不支持此参数。您可以使用dart:html
中的HttpRequest
。
例如,请参阅。我想您需要在post请求中设置withCredentials=true
,但我还没有找到如何处理http包中的请求(如在或中)。我可以看到angular.dart中对此做了特别的规定,但如果angular.dart正在执行此操作,则BrowserClient中没有,当然,它必须在后台调用标准dart库,或者angular.dart是否有自己的类似BrowserClient的库?不,在浏览器中,除了使用dart:html中的HttpRequest API之外,您不能执行HTTP请求。Angular和browserClient只是向前看。创建http包是为了在客户端和服务器之间具有统一的API。在服务器上,它转发到dart:io,在浏览器上转发到dart:html。我已经记录了一个增强请求:在此期间,我将使用较低的级别,直接使用HttpRequest。已经发出了一个包含http包修复的pull请求。希望很快发布。我可以在Github上看到修复程序,通常发布修复程序的时间跨度是多少?如果是一周左右,我将稍等片刻,否则我将遵循dart protobuf示例,这样我至少可以完成身份验证层。根据pub.dartlang.org上的更改日志,包含此更改的版本是两天前发布的。您可以只更新包,而不是整个dart安装。只需从软件包目录或DartEditor中的pubspec.yaml
文件的上下文菜单中,在命令行上运行pub-upgrade
。