Heim > Web-Frontend > js-Tutorial > Wie kann ich CORS-Einschränkungen für domänenübergreifende AJAX-Anfragen umgehen?

Wie kann ich CORS-Einschränkungen für domänenübergreifende AJAX-Anfragen umgehen?

Patricia Arquette
Freigeben: 2024-12-14 13:36:12
Original
536 Leute haben es durchsucht

How Can I Bypass CORS Restrictions for Cross-Domain AJAX Requests?

Laden eines domänenübergreifenden Endpunkts mit AJAX

Einführung

Cross-Origin Resource Sharing (CORS)-Einschränkungen können AJAX-Anfragen zum Abrufen von Daten von verschiedenen Geräten behindern Domänen. In diesem Artikel werden alternative Ansätze zur Überwindung von CORS-Einschränkungen untersucht.

Cors-Einschränkungen verstehen

Aufgrund von Sicherheitsmaßnahmen erzwingen Browser die Same-Origin-Richtlinie, die AJAX-Anfragen innerhalb derselben Domäne einschränkt. Anfragen an eine andere Domäne, Subdomäne, einen anderen Port oder ein anderes Protokoll werden normalerweise blockiert.

JSONP vermeiden

Die Verwendung von JSONP zum Abrufen domänenübergreifender Daten erfordert, dass der Server die Antwort in einem Skriptformat bereitstellt. Wenn es sich bei den erwarteten Daten um HTML handelt, ist die Verwendung von JSONP nicht geeignet.

Alternative Lösungen

1. CORS-Proxy-Alternativen:

  • CORS Anywhere: Fügt CORS-Header zu Proxy-Anfragen hinzu.
  • Welcher Ursprung auch immer: Bietet domänenübergreifenden JSONP-Zugriff.
  • CORS-Proxy : Node.js-Proxy, der CORS-Anfragen für alle ermöglicht Website.

2. Same-Origin-Einschränkungen umgehen:

  • Verwendung von Drittanbieter-Proxys (aus Sicherheitsgründen nicht empfohlen).
  • Erstellen eines Back-End-Proxys zur Bearbeitung domänenübergreifender Anfragen .

CORS-Proxy-Beispiele

CORS Überall:

$.ajaxPrefilter( function (options) {
  if (options.crossDomain && jQuery.support.cors) {
    var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
    options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
  }
});
Nach dem Login kopieren

Welcher Ursprung auch immer:

$.ajaxSetup({
    scriptCharset: "utf-8",
    contentType: "application/json; charset=utf-8"
});

$.getJSON('http://whateverorigin.org/get?url=' + 
    encodeURIComponent('http://google.com') + '&callback=?',
    function (data) {
        console.log(" > " , data);
        $("#viewer").html(data.contents);
});
Nach dem Login kopieren

Fazit

Diese alternativen Ansätze ermöglichen domänenübergreifende AJAX-Anfragen, wenn sie direkt sind Anfragen werden durch CORS eingeschränkt. Die Wahl der besten Lösung hängt vom spezifischen Anwendungsfall und den Sicherheitsaspekten ab.

Das obige ist der detaillierte Inhalt vonWie kann ich CORS-Einschränkungen für domänenübergreifende AJAX-Anfragen umgehen?. 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