CORS ativado, mas a resposta para a comprovação possui código de status HTTP inválido 404 ao POSTAR JSON

Pesquisei minuciosamente, mas não consigo encontrar uma solução para esse problema em minha circunstância específica.

As chamadas de serviço entre domínios usando o Fiddler (POST) são executadas corretamente e os dados são recebidos. No entanto, no navegador (Chrome), recebo a mensagem 'preflight possui código de status HTTP inválido 404'

Eu tenho um aplicativo de API da Web, instalei o CORS e verifiquei o seguinte no arquivo web.config:

<system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integra,ted-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

Aqui está a chamada do Ajax:

var secretKey = 'difusod7899sdfiertwe08wepifdfsodifyosey',
    url = 'http://api.intrinsic.co.uk/api/v1/PTS/ActiveDrivers?api_key=098werolllfWnCbPGAuIXVOJidDHRfYcgxImMlxTXopuekXrSOqOWzEAIdeNTWGPQPpyHxgVGsFysGFKPzq';

  jQuery.ajax ({
      url: url,
      type: "POST",
      data: JSON.stringify({ secretKey: secretKey}),
      dataType: "json",
      contentType: "application/json; charset=utf-8",
      success: function(data){
          var content = "<table class=\"container\"><thead><tr><th>Driver Number</th><th>Timestamp</th><th>VRN</th><th>Latitude</th><th>Longitude</th><th>Track Link</th></tr></thead><tbody>";
          $.each(data.ActiveDrivers.DriverLocationStatus, function (index, element) {
              content += "<tr><td>" + element.DriverNumber + "</td>";
              content += "<td>" + dateFormat(element.Timestamp, "d/m/yy") + " " + dateFormat(element.Timestamp, "h:MM TT") + "</td>";
              content += "<td>" + element.VRN + "</td>";
              content += "<td>" + element.CurrentLatitude + "</td>";
              content += "<td>" + element.CurrentLongitude + "</td>";
              content += "<td><a href=\"https://www.google.co.uk/maps/place//@" + element.CurrentLatitude + "," + element.CurrentLongitude + ",15z/\" target='_blank'>Track &raquo;</a></td></tr>";
          });
          content += "</tbody></table>";
          $( "#result" ).html( content );
      }
  });

Obviamente, funciona perfeitamente no mesmo domínio e, como mencionado, funciona usando o Fiddler.

Estou certo de que a verificação de opções anteriores ao navegador está falhando para o tipo de conteúdo de 'application / json', mas não sei como corrigi-lo.

Há algo faltando no arquivo web.config que devo adicionar?

Eu tentei remover 'tipo de conteúdo' sem afetar.

Eu esperavaEste artigo resolveria o problema (parecia promissor), mas o mesmo erro é encontrado:

XMLHttpRequest cannot load [URL]. Response for preflight has invalid HTTP status code 404

questionAnswers(6)

yourAnswerToTheQuestion