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.
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.
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.
1. Alternatives au proxy CORS :
2. Contournement des restrictions de même origine :
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; } });
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); });
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!