Heim  >  Artikel  >  Web-Frontend  >  Wie ermöglichen Preflight-Optionsanforderungen den domänenübergreifenden HTTP-Zugriff auf WCF-Dienste?

Wie ermöglichen Preflight-Optionsanforderungen den domänenübergreifenden HTTP-Zugriff auf WCF-Dienste?

Linda Hamilton
Linda HamiltonOriginal
2024-10-18 21:57:30443Durchsuche

How Do Preflight Options Requests Enable Cross-Domain HTTP Access to WCF Services?

Domänenübergreifender Zugriff auf WCF-Dienste mit Preflight-Optionsanfragen

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.

Der Preflight-Prozess

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:

  • Access-Control-Request-Method: Gibt die HTTP-Methode der tatsächlichen Anforderung an (z. B. GET, POST)
  • Access-Control -Request-Headers: Listet alle benutzerdefinierten Header auf, die in die eigentliche Anfrage aufgenommen werden

Serverseitige Antwort

Um diese Preflight-Anfragen zu erfüllen, sollte der Server mit entsprechenden Headern antworten:

  • Access-Control-Allow-Origin: Gibt die Ursprünge an, denen der Zugriff auf die Ressource gestattet ist
  • Access-Control-Allow-Methods: Listet die für die Ressource zulässigen HTTP-Methoden auf
  • Access-Control-Allow-Headers: Zählt die benutzerdefinierten Header auf, die in der tatsächlichen Anfrage zulässig sind.

Preflight mit jQuery.getJSON

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>

Beispiel-Antwortheader

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn