No se realiza ninguna Solicitud de verificación previa durante la solicitud de origen cruzado XHR

0

Hice una solicitud de origen cruzado XHR desde un archivo html, alojado en un servidor HTTP simple de python.

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.facebook.com/favicon.ico", true);
xhr.withCredentials = true;
xhr.onload = function () {
    console.log(xhr.responseText);
};
xhr.send();

Abro Herramientas para desarrolladores de Chrome y veo las solicitudes a través de la pestaña Red . En la pestaña Red veo una única solicitud directa realizada al servidor "facebook.com".

Loscomportamientosqueencontréinusualesfueron:

  1. EsperabaverunasolicituddeverificaciónpreviaantesdequelasolicitudXHRdirectafueraHecho,deacuerdoconladocumentaciónmencionadaaquí: enlace

  2. La solicitud tiene un código de estado: * 200 ** que es inusual. SOP debería bloquee este tipo de solicitud ya que es una solicitud de dominio cruzado.

Sin embargo, en la pestaña Consola de Herramientas para desarrolladores de Chrome , veo el comportamiento esperado:

    
pregunta aka_007 28.02.2017 - 09:28
fuente

1 respuesta

1

Una solicitud de verificación previa para verificar los encabezados CORS solo se realiza si la solicitud realizada con XHR no se puede lograr sin XHR. En su caso, solo está realizando una solicitud GET simple sin encabezados especiales, lo que también podría hacerse incluyendo una imagen con la misma URL o similar. Por lo tanto, la solicitud no necesita ser revisada previamente.

Para más detalles, qué solicitud se considera "simple" y no se verifica previamente y cuáles no son simples, vea Prelighted Requests en la documentación a CORS en Mozilla Developer Network.

    
respondido por el Steffen Ullrich 28.02.2017 - 09:42
fuente

Lea otras preguntas en las etiquetas