Por que o CORS dá uma resposta diferente em diferentes tipos de conteúdo

Ao fazer uma chamada para o servidor do domínio de terceiros sem um tipo de conteúdo de solicitação, recebo um erro CORS e nenhuma resposta. Mas, ao fazer uma chamada com um tipo de conteúdo text / plain (que é o verdadeiro tipo de conteúdo da resposta), recebo uma resposta, mas com um erro CORS, não sou capaz de analisar isso no domínio. A questão é por que a resposta vem pela segunda vez e não pela primeira vez. Ambos ainda são um erro do CORS. Como posso analisar o erro pela segunda vez desde que estou recebendo uma resposta do 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>