Internet Explorer 11 no agrega el encabezado Origen en una solicitud CORS?

Mi problema depende de un par de suposiciones que considero ciertas.

Supuesto nr 1: el encabezado de origen

El navegador requiere que el encabezado Origin se incluya en una solicitud CORS (Cross Origin Resource Sharing).

Wikipedia :

Para iniciar una solicitud de origen cruzado, un navegador envía la solicitud con un encabezado HTTP de origen.

Rocas HTML5 :

Lo primero a tener en cuenta es que una solicitud CORS válida siempre contiene un encabezado Origin. Este encabezado de Origen es agregado por el navegador y no puede ser controlado por el usuario.

W3 :

Si el origen de la URL de solicitud no es el mismo origen con el origen de la URL original, establezca el origen de la fuente en un identificador único global [..].

Asunción nr 2: soporte de Internet Explorer 10+ CORS

Vea caniuse.com y use google para un par de cientos de fonts de diferentes tipos que reclaman el soporte.

Asunción nr 3: Diferentes puertos es un origen diferente

Los recursos que usan diferentes números de puerto se consideran de diferentes orígenes:

Wikipedia

Se considera que dos recursos son del mismo origen si y solo si todos estos valores son exactamente iguales. [..] Fallo: el mismo protocolo y host pero puerto diferente.

Red de desarrolladores Mozilla

Dos páginas tienen el mismo origen si el protocolo, el puerto (si se especifica uno) y el host son los mismos para ambas páginas.

El problema:

Internet Explorer 11 no envía el encabezado Origin al realizar una solicitud CORS al mismo dominio “localhost” pero utilizando diferentes puertos (de 8411 a 8080). Opera, Firefox y Chrome envían el encabezado Origen. Sin embargo, todos siguen diciendo que CORS es compatible con Internet Explorer 10+.

La definición de Internet Explorer del “mismo origen” difiere de los otros navegadores. Consulte la sección Excepciones de IE de la documentación de MDN en la política de origen idéntico:

Internet Explorer tiene dos excepciones principales cuando se trata de la misma política de origen:

  • Zonas de confianza: si ambos dominios están en una zona altamente confiable, por ejemplo, dominios corporativos, entonces no se aplican las mismas limitaciones de origen
  • Puerto: IE no incluye el puerto en los componentes de Same Origin, por lo tanto, http://company.com:81/index.html y http://company.com/index.html se consideran del mismo origen y no se aplican restricciones.

Por lo tanto, si su solicitud de origen cruzado ocurre en diferentes puertos, o dentro de una de las zonas de confianza de IE, IE no tratará la solicitud como origen cruzado y no verá la necesidad de agregar el encabezado Origin: .

Me topé con un error informado en un sitio asociado de Microsoft que describe claramente mi problema. El personal de Microsoft concluyó rápidamente que:

No hay información suficiente para reproducir el comportamiento que está observando.

Desde su primer comentario y su primer bash (?), En realidad lograron ejecutar dos servidores web diferentes en diferentes puertos y reprodujeron el problema. El último comentario de Microsoft dice que “consideran apuntar a una solución en el futuro”.