Por qué CORS da una respuesta diferente en diferentes tipos de contenido

Al realizar una llamada al servidor del dominio de terceros sin un tipo de contenido de solicitud, recibo un error CORS y no hay respuesta. Pero cuando hago una llamada con un tipo de contenido text / plain (que es el verdadero tipo de contenido de la respuesta), recibo una respuesta pero con un error CORS, así que no puedo analizar eso en el dom. La pregunta es por qué la respuesta llega la segunda vez y no la primera. Ambos siguen siendo un error CORS. ¿Cómo puedo analizar el error la segunda vez desde que recibo una respuesta del servidor?

   <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script>
        var xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://www.w3schools.com/xml/ajax_info.txt', true);
        xhr.setRequestHeader('content-type', undefined);
        xhr.onload = function () {
            console.log('Test');
        };
        xhr.send(null);
        var contentXHR = new XMLHttpRequest();
        contentXHR.open('GET', 'http://www.w3schools.com/xml/ajax_info.txt', true);
        contentXHR.setRequestHeader('content-type', 'text/plain');
        contentXHR.onload = function () {
            console.log('Test request header');
        };
        contentXHR.send(null);
    </script>
  </head>
    <body>
            Check console and network tab
    </body>
</html>

Respuestas a la pregunta(1)

Su respuesta a la pregunta