2013-04-30 18 views
10

Ho appena scoperto che il mio browser inviava una richiesta aggiuntiva "OPZIONE" quando si tenta di effettuare una chiamata ajax su più domini con un'intestazione http personalizzata. Suppongo che si chiami "richiesta preflight".Disabilitare la richiesta OPZIONE di verifica preliminare quando si invia una richiesta di dominio incrociato con intestazione HTTP personalizzata

È possibile disabilitare questa funzionalità e inviare semplicemente la richiesta iniziale?

Questo è il mio codice di prova javascript:

$(document).ready(function() { 
    $.ajax({ 
     url: "http://google.fr", 
     crossDomain: true, 
     headers: { 
      "X-custom-parameter": true 
     } 
    }); 
}); 

Grazie per l'aiuto!

risposta

10

No, non è possibile ignorare la richiesta di verifica preliminare CORS. La richiesta di verifica preliminare esiste per consentire le richieste tra domini in modo sicuro. Nel tuo esempio sopra, stai tentando di accedere a google.fr, ma google.fr non supporta CORS. Non c'è modo di aggirare questo per Google, dal momento che Google non supporta le richieste tra domini sulla sua pagina web. In generale, se si ha la proprietà del server, le opzioni sono di supporto per CORS, supporto di intrusioni cross-domain alternative come JSON-P o utilizzo di un proxy lato server.