Partage d'exemples de solutions parfaites inter-domaines Ajax

小云云
Libérer: 2023-03-19 12:02:01
original
1487 Les gens l'ont consulté

L'entreprise souhaite créer une page d'événement, découvrir toutes les interfaces du processus et effectuer des requêtes ajax sur tous les domaines. Voici une brève introduction au cross-domain et plusieurs solutions.

En raison des limitations de la politique de même origine implémentée par le navigateur, XmlHttpRequest n'est autorisé à demander des ressources qu'à la source actuelle (nom de domaine, protocole, port), donc AJAX n'est pas autorisé à traverser des domaines. Voici trois méthodes couramment utilisées :

1. accès jsonp

JSONP (JSON with Padding) est un protocole non officiel qui permet d'intégrer des balises Script côté serveur et de les renvoyer au client. , l'accès entre domaines est obtenu via le rappel javascript ;

méthode d'implémentation

 1)

<script type="text/javascript"> 
  $.ajax({ 
    url:url, 
    dataType:'jsonp', 
    data:'', 
    jsonp:'callback', 
    success:function(result) { 
    }, 
  }); 
</script>
Copier après la connexion

 2)

$.getJSON(url+"?callback=?", 
  function(result) { 
  });
Copier après la connexion

Remarque : 1 】 jsonp ne peut être demandé qu'avec get. Même si vous utilisez la requête de publication, elle sera automatiquement convertie en publication pour vous

 2】 jsonp peut non seulement être utilisé pour obtenir des données, mais peut également être utilisé pour ; soumettre des données.

2. méthode damain

Lorsque le domaine principal est le même et que les sous-domaines sont différents, vous pouvez utiliser cette méthode pour modifier le nom de domaine pointant afin qu'ils pointent vers le même nom de domaine. Cette méthode ne peut résoudre le problème que lorsque le domaine principal est le même mais que le nom de domaine secondaire est différent, cette méthode ne peut pas être utilisée pour deux URL non liées

document.domain = 'a.com'
Copier après la connexion

Remarque : dans le développement réel, de nombreuses personnes ; va déboguer l'interface localement, le nom de domaine de localhost est complètement différent du nom de domaine de l'entreprise, donc la méthode de domaine ne peut produire aucun effet, la solution est de modifier le fichier hôte dans le lecteur c, de changer l'adresse locale localhost en entreprise. nom de domaine ou le nom de domaine de deuxième niveau de l'entreprise, puis cette méthode peut être utilisée.

Ce qui suit est le nom de domaine modifié pointant vers :

#127.0.0.1 localhost
127.0.0.1 company.com

postMessage

postMessage est l'une des nouvelles fonctionnalités de h5 Puisque nous sommes une entreprise qui crée des jeux h5, il est inévitable d'imbriquer des iframes pour faciliter la soumission des données, etc.

On suppose ici que l'identifiant de l'iframe est 'iframe' ;

doit être écrit en js à l'intérieur de l'iframe.

var message = 'date';<br>if (parent.document.getElementById(‘iframe‘)) {
          //捕获iframe
          var iframe = parent.document.getElementById(‘iframe').contentWindow;
          //发送消息
          parent.postMessage(message, "*");
        }
Copier après la connexion

doit être écrit en js. js en dehors de l'iframe

window.addEventListener('message',function(e){
      },false);
Copier après la connexion

Ensuite, vous pouvez obtenir les données du message.

Recommandations associées :

Solution d'erreur pour parsererror sous requête inter-domaine ajax

JS implémente le contenu de la réponse du flacon de requête inter-domaine Ajax

Exemple détaillé du principe de requête cross-domain Ajax

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!