Beim Versuch, domänenübergreifende HTTP-Anfragen an WCF-Dienste durchzuführen, müssen unbedingt CORS-Einschränkungen berücksichtigt werden. In diesem Artikel wird erläutert, wie Sie eine HTTP-Anfrage mithilfe von OPTIONS vorab überprüfen, um diese Hindernisse zu überwinden.
Bevor eine tatsächliche Anforderung gesendet wird, überprüfen Browser die Anforderung mithilfe einer OPTIONS-Anfrage, um festzustellen, ob der Server vorhanden ist lässt die Anfrage zu. Dieser Schritt umfasst das Senden von zwei speziellen Anforderungsheadern:
Um diese Preflight-Anfragen zu erfüllen, sollte der Server mit entsprechenden Headern antworten:
Die Verwendung von jQuery.getJSON für GET-Anfragen erfordert Preflight mit einer OPTIONS-Anfrage. Dies kann wie folgt implementiert werden:
<code class="javascript">$.ajax({ url: "http://your.wcf.endpoint", type: "OPTIONS", success: function(data) { console.log("Preflight successful:", data); } }); $.getJSON("http://your.wcf.endpoint", function(data) { console.log("Actual GET request:", data); });</code>
Betrachten Sie eine eingehende Preflight-Anfrage mit den folgenden Headern:
Origin: http://yourdomain.com Access-Control-Request-Method: POST Access-Control-Request-Headers: X-Custom-Header
Der Server sollte antworten mit:
Access-Control-Allow-Origin: http://yourdomain.com Access-Control-Allow-Methods: GET, POST Access-Control-Allow-Headers: X-Custom-Header
Die Access-Control-Request-Header müssen in der Access-Control-Allow-Headers-Antwort wiedergegeben werden und der Platzhalter „*“ ist nicht zulässig.
Das obige ist der detaillierte Inhalt vonWie ermöglichen Preflight-Optionsanforderungen den domänenübergreifenden HTTP-Zugriff auf WCF-Dienste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!