2013-04-30 3 views
10

Senden habe ich gerade herausgefunden, dass mein Browser einen zusätzlichen „OPTION“ Antrag wurde zu senden, wenn einen Cross-Domain-Ajax-Aufruf mit einem benutzerdefinierten HTTP-Header zu machen versuchen. Ich nehme es „Preflight-Anfrage“ genannt.Disable Preflight OPTION Anfrage, wenn eine Cross-Domain-Anforderung mit benutzerdefinierter HTTP-Header

Ist es möglich, diese Funktion zu deaktivieren und nur die anfängliche Anfrage senden?

Dies ist mein Javascript Testcode:

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

Danke für die Hilfe!

Antwort

10

Nein, es ist definitiv nicht möglich, die CORS Preflight-Anfrage zu umgehen. Die Preflight-Anforderung existiert, um domänenübergreifende Anforderungen auf sichere Weise zuzulassen. In Ihrem Beispiel oben, versuchen Sie google.fr zugreifen, aber google.fr CORS nicht unterstützt. Für Google gibt es dafür keine Lösung, da Google domänenübergreifende Anfragen auf seiner Webseite nicht unterstützt. Im Allgemeinen, wenn Sie Eigentum an den Server haben, sind Ihre Möglichkeiten CORS unterstützen, unterstützen alternative Cross-Domain-Hacks wie JSON-P, oder einen serverseitigen Proxy verwenden.

Verwandte Themen