Heim  >  Artikel  >  Web-Frontend  >  Wie erfolgt ein Preflight einer HTTP-Anfrage für Cross-Origin Resource Sharing (CORS)?

Wie erfolgt ein Preflight einer HTTP-Anfrage für Cross-Origin Resource Sharing (CORS)?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-18 21:54:311020Durchsuche

How to Preflight an HTTP Request for Cross-Origin Resource Sharing (CORS)?

CORS: Preflighting von HTTPRequests

Cross-Origin Resource Sharing (CORS) führt zu Einschränkungen bei domänenübergreifenden HTTP-Anfragen. Um diesen Herausforderungen zu begegnen, können Preflight-Anfragen eingesetzt werden. In diesem Zusammenhang beinhalten Preflight-Anfragen das Senden einer OPTIONS-Anfrage an den Server, bevor die eigentliche Anfrage gestellt wird. Dadurch kann der Server überprüfen, ob die Anfrage zulässig ist, und die erforderlichen Berechtigungen bereitstellen.

So führen Sie einen Preflight einer Anfrage durch

Der Preflight einer HTTP-Anfrage erfordert das Senden einer OPTIONS-Anfrage mit spezifischen Headern, die die gewünschte Methode und Header für die tatsächliche Anfrage angeben. Der Server antwortet mit Headern, die die Anforderungsberechtigungen gewähren oder verweigern.

Serverseitige Preflight-Antwort

Der Server sollte auf Preflight-Anfragen mit den folgenden Headern antworten:

  • Access-Control-Allow-Origin: Die Domäne, die die eigentliche Anfrage stellen darf.
  • Access-Control-Allow-Methods: Die erlaubten Methoden für die eigentliche Anfrage.
  • Access-Control-Allow-Headers: Die erlaubten Header für die eigentliche Anfrage. Dieser Header darf nicht „*“ sein.

Clientseitige Preflight-Anfrage

In jQuery kann die folgende Technik zum Preflight einer Anfrage verwendet werden:

<code class="javascript">$.ajax({
  url: yourUrl,
  type: 'OPTIONS',
  success: function(data, status) {
    // Extract and verify the preflight response headers
    var origin = data.getResponseHeader('Access-Control-Allow-Origin');
    var methods = data.getResponseHeader('Access-Control-Allow-Methods');
    var headers = data.getResponseHeader('Access-Control-Allow-Headers');
    // Proceed with the actual request only if permissions are granted
    if (origin === 'http://mydomain.com' && methods.indexOf('POST') !== -1 && headers.indexOf('X-Custom-Header') !== -1) {
      // Make the actual request
    } else {
      // Handle the error and deny the request
    }
  }
});</code>

Durch die Implementierung dieser Änderungen können Sie sicherstellen, dass Ihre domänenübergreifenden HTTP-Anfragen vorab überprüft werden und ohne Eingreifen des Browsers ausgeführt werden können.

Das obige ist der detaillierte Inhalt vonWie erfolgt ein Preflight einer HTTP-Anfrage für Cross-Origin Resource Sharing (CORS)?. 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