Heim >Web-Frontend >js-Tutorial >Wie kann ich domänenübergreifende POST-Anfragen in JavaScript ohne Seitenaktualisierung oder Antwortanalyse stellen?

Wie kann ich domänenübergreifende POST-Anfragen in JavaScript ohne Seitenaktualisierung oder Antwortanalyse stellen?

Susan Sarandon
Susan SarandonOriginal
2025-01-02 13:52:39215Durchsuche

How Can I Make Cross-Domain POST Requests in JavaScript Without Page Refresh or Response Parsing?

Senden von domänenübergreifenden POST-Anfragen mit JavaScript

Problem:

So führen Sie eine domänenübergreifende POST-Anfrage mit durch JavaScript, ohne die Seite zu aktualisieren oder eine Antwort zu erfordern analysieren?

Lösung:

Cross-Origin Resource Sharing (CORS) verstehen

Um die domänenübergreifende Kommunikation zu erleichtern, CORS ist ein auf dem Server implementierter Standard. Durch das Festlegen von Antwortheadern auf dem Server können Sie bestimmten Domänen die Berechtigung erteilen, auf Ressourcen in Ihrer eigenen Domäne zuzugreifen.

Serverseitige Konfiguration (mit PHP):

  1. Fügen Sie in der Ziel-PHP-Datei (z. B. postHere.php) den folgenden Code ein:
<?php
switch ($_SERVER['HTTP_ORIGIN']) {
    case 'http://from.com': case 'https://from.com':
    header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
    header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
    header('Access-Control-Max-Age: 1000');
    header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
    break;
}
?>

Dies Ermöglicht dem Skript von from.com, domänenübergreifende POST-, GET- und OPTIONS-Anfragen zu stellen.

Clientseitige AJAX-Anfrage (mit jQuery):

  1. Richten Sie Ihr AJAX ein Anfrage:
$.ajax({
  type: 'POST',
  url: 'https://to.com/postHere.php',
  crossDomain: true,
  data: '{&quot;some&quot;:&quot;json&quot;}',
  dataType: 'json',
  success: function(responseData, textStatus, jqXHR) {
    var value = responseData.someKey;
  },
  error: function (responseData, textStatus, errorThrown) {
    alert('POST failed.');
  }
});

Prozess:

  1. Browser sendet eine OPTIONS-Anfrage, um zu prüfen, ob POSTing erlaubt ist.
  2. Server antwortet mit Access-Control-Headern, die bestimmten Domänen die Berechtigung erteilen.
  3. Der Browser sendet den eigentlichen POST Anfrage.
  4. Server verarbeitet die Anfrage und gibt die Antwort zurück.

Überlegungen:

  • Stellen Sie sicher, dass angemessene Sicherheitsvorkehrungen vorhanden sind beim Gewähren von ursprungsübergreifendem Zugriff.
  • Mobile Browser unterstützen normalerweise keinen domänenübergreifenden Zugriff POST.
  • Berücksichtigen Sie den potenziellen Mehraufwand durch doppelte Anfragen und Auswirkungen auf die Sicherheit.
  • Gib immer die entsprechenden CORS-Header in der Antwort zurück, nicht nur für OPTIONS-Anfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich domänenübergreifende POST-Anfragen in JavaScript ohne Seitenaktualisierung oder Antwortanalyse stellen?. 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