CORS habilitado pero la respuesta para la verificación previa tiene un código de estado HTTP 404 no válido cuando se envía JSON

He buscado a fondo pero no puedo encontrar una solución a este problema en mi circunstancia particular.

Las llamadas de servicio entre dominios que utilizan Fiddler (POST) se ejecutan correctamente y se reciben los datos. Sin embargo, a través del navegador (Chrome) recibo el mensaje 'la verificación previa tiene un código de estado HTTP 404 no válido'

Tengo una aplicación de API web y he instalado CORS y me aseguré de que lo siguiente esté presente en el archivo 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>

Aquí está la llamada 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 perfectamente en el mismo dominio y, como se mencionó, funciona con Fiddler.

Estoy seguro de que es la verificación de OPCIONES de verificación previa del navegador la que falla para el tipo de contenido de 'aplicación / json', pero no estoy seguro de cómo solucionarlo.

¿Falta algo en el archivo web.config que deba agregar?

He intentado eliminar 'content-type' sin ningún efecto.

Había esperadoEste artículo resolvería el problema (parecía prometedor) pero se encuentra el mismo error:

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

Respuestas a la pregunta(6)

Su respuesta a la pregunta