Maison > interface Web > js tutoriel > Comment puis-je contourner les restrictions CORS pour les requêtes AJAX inter-domaines ?

Comment puis-je contourner les restrictions CORS pour les requêtes AJAX inter-domaines ?

Patricia Arquette
Libérer: 2024-12-14 13:36:12
original
536 Les gens l'ont consulté

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

Chargement d'un point de terminaison inter-domaines avec AJAX

Introduction

Les restrictions de partage de ressources d'origine croisée (CORS) peuvent empêcher les requêtes AJAX de récupérer des données de différents domaines. Cet article examine des approches alternatives pour surmonter les limitations CORS.

Comprendre les restrictions CORS

En raison de mesures de sécurité, les navigateurs appliquent la politique de même origine, qui restreint les requêtes AJAX au sein du même domaine. Les requêtes vers un autre domaine, sous-domaine, port ou protocole sont généralement bloquées.

Éviter JSONP

L'utilisation de JSONP pour récupérer des données inter-domaines nécessite que le serveur fournisse la réponse dans un format de script. Si les données attendues sont HTML, l'utilisation de JSONP ne convient pas.

Solutions alternatives

1. Alternatives au proxy CORS :

  • CORS Anywhere : ajoute des en-têtes CORS aux requêtes proxy.
  • Quelle que soit l'origine : fournit un accès JSONP inter-domaines.
  • Proxy CORS : proxy Node.js qui active les requêtes CORS pour tout site Web.

2. Contournement des restrictions de même origine :

  • Utilisation de proxys tiers (non recommandé en raison de problèmes de sécurité).
  • Création d'un proxy back-end pour gérer les requêtes inter-domaines .

Exemples de proxy CORS

CORS N'importe où :

$.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;
  }
});
Copier après la connexion

Quelle que soit l'origine :

$.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);
});
Copier après la connexion

Conclusion

Ces approches alternatives autorisent les requêtes AJAX inter-domaines lorsqu'elles sont directes les demandes sont limitées par CORS. Le choix de la meilleure solution dépend du cas d'utilisation spécifique et des considérations de sécurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal