Como o CORS e o Access-Control-Allow-Headers funcionam?

Estou tentando fazer o CORS solicitar POST de domain.com para a.domain.com.

Meu javascript se parece com isso

$('#fileupload').fileupload({
  xhrFields: {
    withCredentials: true
  },
  dataType: 'json',
  url: $('#fileupload').data('path'),
  singleFileUploads: true,
  add: function(e, data){
    data.submit();
  }
});

No começo eu vejo a rota OPTIONS sendo chamada assim:

Request URL: https://a.domain.com/some/route
Request Method:OPTIONS
Status Code:200 OK

OPÇÕES SOLICITAÇÃO:

Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Host:a.domain.com
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

OPÇÕES RESPOSTA

Access-Control-Allow-Credentials:true
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin:http://domain.com:3000
Connection:keep-alive
Content-Length:0
Content-Type:text/html;charset=utf-8

Esse pedido volta com um 200 como indicado. No meu servidor, eu tenho a mesma rota comPOST método e isso é o que eu recebo em troca após oOPTIONS

Request URL:https://a.domain.com/some/route

PEDIDO DE POSTAGEM

Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryjwr5Pk7WBcfzMdbO
Origin:http://domain.com:3000
Referer:http://domain.com:3000/home

e aPOST solicitação é cancelada / falha.

Minha pergunta é, eu preciso ter o controle de acesso-permitir-origem no controlador POST também?

Eu tenho um cookie para autorização que tem domínio.domain.com esse cookie foi enviado uma vez em uma solicitação e não está sendo enviado agora. Alguma ideia de por que isso aconteceria?

questionAnswers(2)

yourAnswerToTheQuestion