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