Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Implementierung von domänenübergreifendem Javascript-Anforderungscode

Detaillierte Erläuterung der Implementierung von domänenübergreifendem Javascript-Anforderungscode

伊谢尔伦
伊谢尔伦Original
2017-07-20 11:39:221504Durchsuche

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=&#39;{"id":"3", "name":"leisure"}&#39;;</script>

2 zurück 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. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn