Я выполняю BrowserClient POST для разных доменов и не вижу включения моих файлов cookie.
Это ответ, который я получаю:
Когда я отправляю другой запрос POST, я не вижу включенных файлов cookie:
Перейдя прямо на тестовую страницу, я вижу, что файлы cookie включены:
Код Dart, который я использую для создания POST:
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 через сервер.
Обновление: зарегистрирован запрос на улучшение: https://code.google.com/p/dart/issues/detail?id=23088
Обновление: реализовано улучшение, теперь можно выполнять var client = new BrowserClient()..withCredentials=true;
на основе https://github.com/dart-lang/http/commit/9d76e5e3c08e526b12d545517860c092e089a313
withCredentials=true
в вашем почтовом запросе, но я еще не нашел, как это сделать с запросом из http-пакета (например, в stackoverflow.com/questions/21770445 или stackoverflow.com/questions/16939328). - person Günter Zöchbauer   schedule 03.04.2015