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
Freigeben: 2025-01-02 13:52:39
Original
193 Leute haben es durchsucht

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;
}
?>
Nach dem Login kopieren

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.');
  }
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage