Le contenu de cet article concerne la méthode de contrôle des noms de domaine inter-domaines et l'autorisation du téléchargement d'images inter-domaines via le backend PHP. J'espère qu'il aura une certaine valeur de référence. vous être utile.
Des problèmes inter-domaines doivent souvent être résolus, et le front-end doit être fait plus directement
Choisissez soit la soumission asynchrone ajax, XML ou jsonp, soit la soumission de formulaire
jsonp peut pratiquement tout gérer. Il y a quelques problèmes inter-domaines, mais le problème est également relativement évident. Il ne peut être soumis que via la méthode get
et jsonp soumet la demande en mettant des paramètres dans l'URL
. 🎜>
Cependant, tous les navigateurs ont des restrictions de longueur d'URL. , différents navigateurs ont des restrictions de longueur différentesLorsque vous devez soumettre un grand paragraphe de contenu, comme un article, si vous utilisez jsonp et la longueur dépasse la longueur, vous ne pouvez que diviser et soumettre C'est très gênant, et au final ce n'est pas correct La sécurité a un certain impactEt axiox ne prend pas en charge jsonp maintenant bien qu'il y en ait. façons de le résoudreEn particulier pour le téléchargement de ressources d'images, il ne peut pas être bien implémenté avec des méthodes telles que jsonpScénarios qui nécessitent le téléchargement d'images inter-domaines
Bien sûr, il est préférable de ne pas inter-domaines, mais la plupart des projets ont actuellement le front-end et le back-end séparésLes ressources statiques et les interfaces sont respectivement des noms de domaine différents ou des noms de domaine de deuxième niveau, qui implique un inter-domaineS'il s'agit d'un téléchargement de ressources, le backend Access-Control-Allow-Origin et la requête actuelle sont requis pour le cross-domain. Identique à Origin, il ne peut pas être défini sur *Solution php
S'il s'agit d'une demande de données traditionnelle, alors le backend définit directement Access-Control-Allow-Origin sur * Goodheader('Access-Control-Allow-Origin:*');
$originList = [ 'http://127.0.0.1', 'http://www.php.cn', 'http://www.php.cn', ]; if(in_array($_SERVER['HTTP_ORIGIN'], $originList)){ header('Access-Control-Allow-Origin:'.$origin); header("Access-Control-Allow-Credentials: true"); header('Access-Control-Allow-Headers:x-requested-with,content-type'); header("Access-Control-Allow-Methods: POST,GET,OPTIONS"); }
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!