Maison >interface Web >js tutoriel >Explication détaillée de la façon d'implémenter le code de requête inter-domaines Javascript

Explication détaillée de la façon d'implémenter le code de requête inter-domaines Javascript

伊谢尔伦
伊谢尔伦original
2017-07-20 11:39:221521parcourir

Dans quelles circonstances le inter-domaines se produit-il ?

Supposons que le nom de domaine soit : http://www.php.cn
Si le nom de domaine demandé est différent de ce nom de domaine, cette situation est inter-domaine puisqu'il y a des failles. en cross-domain, c'est généralement Par exemple, les méthodes de requête inter-domaines normales ne peuvent pas être demandées.
Solution :
1. window.name
1 Le serveur renvoie

<script>window.name=&#39;{"id":"3", "name":"leisure"}&#39;;</script>

2. Eventa8d03127d746a409cd95a10968b8208dd5ba1642137c3f32f4f4493ae923989c

<script type="text/javascript"> 
var load = false; 
function iLoad() { 
if(load == false) { 
// 同域处理,请求后会再次重新加载iframe 
document.getElementById(&#39;iframe1&#39;).contentWindow.location = &#39;/&#39;; 
load = true; 
} else { 
// 获取window.name的内容,注意必须进行同域处理后方可访问! 
var data = document.getElementById(&#39;iframe1&#39;).contentWindow.name; 
alert(data); // {"id":"3", "name":"leisure"} 
load = false; 
} 
} 
</script>

3. Définissez un formulaire, définissez la cible du formulaire sur l'identifiant de l'iframe, puis soumettez le formulaire

<form action="url" method="POST" target="iframe1"> 
<button type="submit" value="submit" /> 
</form>


2 JSONP
Le serveur renvoie un rappel({"id": "3" , " name": "leisure"});

<script type="text/javascript"> 
function callback(data) { 
alert(data); 
} 
</script> 
<script type="text/javascript" src="http://www.php.cn/product.jsp?id=5&jsonp=callback"></script>


3. jQuery.getJSON
Le serveur renvoie le test de données au format json({"id": "3" , "name": "leisure"}); Le nom de la fonction de test est défini dans le paramètre de rappel

$.getJSON(url + "?callback=?", data, function(data) { 
}

Notez que le paramètre callback=? nom pour remplacer le point d'interrogation ! jQuery.getJSON est en fait implémenté à l'aide de JSONP.

4. Flash cross-domain
Ajouter crossdomain.xml au serveur
http://www.php .cn/ crossdomain.xml

<?xml version="1.0"?> 
<cross-domain-policy> 
<allow-access-from domain="*.another.com.cn" /> 
</cross-domain-policy>


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!

Déclaration:
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