Dart BrowserClient POST 不包括我的 cookie
Dart BrowserClient POST not including my cookies
我正在跨域执行 BrowserClient POST,但没有看到我的 cookie 被包含在内。
这是我收到的回复:
当我发送另一个 POST 请求时,我没有看到包含 cookies:
直接进入测试页面,我可以看到包含的cookies:
我用来制作 POST:
的 Dart 代码
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 header 我包括,有或没有它,都没有改变。
我是否在服务器端缺少需要在响应中设置的 headers,或者 Dartium 是否阻止了 cross-domain cookies?
有关 Information Security 的更多详细信息以及通过服务器设置 cookie 的原因。
更新:记录的增强请求:https://code.google.com/p/dart/issues/detail?id=23088
更新:已实施增强功能,现在应该可以 var client = new BrowserClient()..withCredentials=true;
基于
https://github.com/dart-lang/http/commit/9d76e5e3c08e526b12d545517860c092e089a313
对于发送给 CORS 请求的 cookie,您需要设置 withCredentials = true
。 http
包中的浏览器客户端不支持此参数。您可以改用 dart:html
中的 HttpRequest
。
有关示例,请参阅 How to use dart-protobuf。
我正在跨域执行 BrowserClient POST,但没有看到我的 cookie 被包含在内。
这是我收到的回复:
当我发送另一个 POST 请求时,我没有看到包含 cookies:
直接进入测试页面,我可以看到包含的cookies:
我用来制作 POST:
的 Dart 代码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 header 我包括,有或没有它,都没有改变。
我是否在服务器端缺少需要在响应中设置的 headers,或者 Dartium 是否阻止了 cross-domain cookies?
有关 Information Security 的更多详细信息以及通过服务器设置 cookie 的原因。
更新:记录的增强请求:https://code.google.com/p/dart/issues/detail?id=23088
更新:已实施增强功能,现在应该可以 var client = new BrowserClient()..withCredentials=true;
基于
https://github.com/dart-lang/http/commit/9d76e5e3c08e526b12d545517860c092e089a313
对于发送给 CORS 请求的 cookie,您需要设置 withCredentials = true
。 http
包中的浏览器客户端不支持此参数。您可以改用 dart:html
中的 HttpRequest
。
有关示例,请参阅 How to use dart-protobuf。