Unter welchen Umständen kommt es zu domänenübergreifenden ?
Angenommen, der Domänenname lautet: http://www.php.cn
Wenn sich der angeforderte Domänenname von diesem Domänennamen unterscheidet, handelt es sich um eine domänenübergreifende Situation, da es Lücken gibt Im domänenübergreifenden Bereich ist dies im Allgemeinen der Fall. Normale domänenübergreifende Anforderungsmethoden können beispielsweise nicht angefordert werden.
Lösung:
1. window.name
Der Server gibt
<script>window.name='{"id":"3", "name":"leisure"}';</script>
2 zurück 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. Definieren Sie ein Formular, legen Sie das Ziel des Formulars auf die Iframe-ID fest und senden Sie es dann ab Formular
<form action="url" method="POST" target="iframe1"> <button type="submit" value="submit" /> </form>
2 JSONP
Der Server gibt einen Rückruf zurück({"id": "3" , „name“: „leisure“}); "3" , "name": "leisure"}); Der Name der Testfunktion ist im Callback-Parameter definiert
<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>
Beachten Sie, dass der Parameter callback=? Name anstelle des Fragezeichens! jQuery.getJSON wird tatsächlich mit JSONP implementiert.
$.getJSON(url + "?callback=?", data, function(data) { }
4. Flash-domänenübergreifend
crossdomain.xml zum Server hinzufügen
http://www.php .cn/ crossdomain.xml
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Implementierung von domänenübergreifendem Javascript-Anforderungscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!