Помогите пожалуйста понять почему несмотря на нарушение CORS кука всё же устанавливается.
Бекенд и фронтенд находятся на разных доменах. Из фронтенда я отправляю запрос на бекенд, а точнее на адрес, который отдаёт куку в виде заголовка Set-Cookie:
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.open('GET', Config.host + 'csrf/display_form', true);
xhr.onload = function() {
  console.log( 'xhr response code:' + xhr.status + xhr.statusText);
}
xhr.onerror = function() {
  console.log( 'ERROR ' + this + xhr.status + xhr.statusText + xhr.responseText);
}
xhr.send();
Как видите, здесь кроме стандартного ajax-запроса есть команда 
	
	| Код: | 
	| xhr.withCredentials = true; | 
	
Этого требует CORS.
Вот код бекенда(написан на python, но принципиального значения это не имеет):
	
	| Код: | 
	| def display_form(request):
  response = HttpResponse('set csrf cookie for form')
  response.set_cookie('csrftoken', random.getrandbits(256))  # генерируем куку
  response['Access-Control-Allow-Origin'] = 'http://localhost:4200'
  response['Access-Control-Allow-Credentials'] = 'true'
  return response | 
	
Как видите, здесь тоже в соответствии с CORS я устанавливаю необходимые два заголовка.
В результате кука в браузере устанавливается и кроме того отрабатывает коллбек xhr.onload. То есть в консоль браузера выводится статус ОК.
Проблема в том, что эта кука устанавливается даже в том случае когда я со стороны сервера нарушаю CORS, а точнее убираю объявление следующих заголовков(оба сразу или по одному):
	
	| Код: | 
	| response['Access-Control-Allow-Origin'] = 'http://localhost:4200'
response['Access-Control-Allow-Credentials'] = 'true' | 
	
В этом случае кука устанавливается, но со стороны фронтенда отрабатывает коллбек xhr.onerror
Я ожидал, что после нарушения CORS со стороны бекенда кука не установится. Помогите пожалуйста разобраться.
На гите: 
фронт, 
бек