Domänenübergreifende Probleme in js
Der Inhalt dieses Artikels handelt von den domänenübergreifenden Problemen von js. Jetzt können Freunde in Not darauf verweisen
Der Beispielcode befindet sich unter E/AjaxGGW/Informationen zu domänenübergreifenden Problemen finden Sie in den Lesezeichen-Nuggets (domänenübergreifend korrekt anzeigen, keine Panik)
1. Domänenübergreifend: Der Browser kann keine Skripte von anderen Websites ausführen. Es wird durch die Same Origin -Richtlinie des Browsers verursacht, die Sicherheitseinschränkungen durchsucht implementiert vom Server auf
2. Die Same-Origin-Richtlinie schränkt die folgenden Verhaltensweisen ein:
Cookie, LocalStorage und IndexDB können nicht gelesen werden
DOM- und JS-Objekte können nicht abgerufen werden
Ajax-Anfrage kann nicht gesendet werden
- 3.
Häufige domänenübergreifende Szenarien Gleicher Ursprung: gleicher Domainname, gleiches Protokoll und gleicher Port
http://www.nealyang.cn/index.html
- Anruf
- http://www.nealyang.cn/server.php
Nicht gekreuzt -domain
http://www.nealyang.cn/index.html -
Anruf http://www.neal.cn/server.php Domainübergreifend, verschiedene Hauptdomains
http://abc.nealyang.cn/index.html Anruf http://def.neal.cn/server.php Domainübergreifend , Subdomainnamen sind unterschiedlich http://www.nealyang.cn:8080/index.html
Aufruf - http://www.nealyang.cn/server.php
Domänenübergreifend, verschiedene Portshttps ://www.nealyang.cn/index.html
Aufruf - http://www.nealyang.cn/server.php
Cross-domain , verschiedene Protokolle
4.
Domänenübergreifende Lösung1)
jsonp domänenübergreifendAuf der HTML-Seitedas Laden statischer Ressourcendateien von verschiedenen Domänennamen über entsprechende Tags ist erlaubt durch den Browser. Im Allgemeinen können wir dynamisch das Skript-Tag erstellen und dann eine URL mit Parametern anfordern, um eine domänenübergreifende Kommunikation zu erreichen. Der größte Fehler ist jedoch, dass nur Anfrage erhalten 2) document.domain + iframe Cross-Domain (1.html und document.domain+iframe Cross-Domain.html) Die wichtigste Voraussetzung ist, dass der Hauptdomänenname derselbe istund zwei HTML-Seiten erforderlich sind 3)window.name + iframe Cross-domain (origin.html und target.html sind nicht in Nuggets) window.name-Attribut Kann eine Zeichenfolge festlegen oder zurückgeben, in der der Fenstername gespeichert ist. Ihre Magie besteht darin, dass der Namenswert weiterhin vorhanden ist, wenn er auf verschiedenen Seiten oder in verschiedenen Domänen geladen wird. Er ändert sich nicht ohne Änderung und kann sehr lange Namen (2 MB) speichern Angenommen, die -Indexseite fordert Daten auf dem Remote-Server an. Der src des iframe zeigt auf die Adresse der Serverdatei (der iframe-Tag src kann domänenübergreifend sein). wird in der Serverdatei festgelegt und dann der Wert von window.name im iframe in index.html gelesen Wenn der index.html Seite und Seite Wenn der SRC des Iframes nicht aus einer anderen Quelle stammt, können Sie im Frame nichts bedienen. Die beiden Seiten befinden sich in unterschiedlichen Domänen und die Quellseite kann den Namenswert der Zielseite nicht abrufen, da der Namenswert nur für Seiten in derselben Domäne sichtbar ist. 4) Location.hash + iframe domänenübergreifend Dies Die domänenübergreifende Methode ähnelt der oben vorgestellten Methode. Sie fügt außerdem dynamisch einen iframe ein und legt dann dessen Quelle als Serveradresse fest. Der Server gibt außerdem einen JS-Code aus und schließt die Datenübertragung durch die Kommunikation mit dem Kind ab Fenster. . Und location.hash ist tatsächlich der Ankerpunkt der URL, zum Beispiel nach dem Öffnen der URL von http://www.nealyang.cn#Nealyang , geben Sie es in die Konsole ein. Der Hash gibt das Feld #Nealyang zurück. [Hinweis] Tatsächlich sind location.hash und window.hash ähnlich. Beide Methoden verwenden globale Objekteigenschaften, und diese beiden Methoden sind es auch das Gleiche wie jsop. Das Gleiche ist, dass nur Get-Anfragen implementiert werden können 5) postMessage domänenübergreifend ( a.html und b.html) Dies ist eine coole API, die von H5 vorgeschlagen wurde, einschließlich der postMessage-Methode zum Senden von Informationen und der Nachrichtenzeit zum Empfangen von Informationen. ① 发送信息的postMessage方法是向外界窗口发送信息 otherWindow.postMessage(message,targetOrigin); l otherWindow指的是目标窗口,是window.frames属性的成员或者是window.open方法创建的窗口。 l Message是要发送的消息,类型是String、Object l targetOringin是限定消息接收范围,不限制用星号* ② 接受信息的message事件 6) 跨域资源共享CORS 目前主流的跨域解决方案 1)简介 CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而客服了AJAX只能同源使用的限制。 CORS需要浏览器和服务器同时支持。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。 相关推荐:$(function(){
/*jQuery支持jsonp的实现方式 */
$.ajax({
url:"www.baidu.com",
type:"GET",
dataType:"jsonp", //请求方式为:jsonp
jsonpCallback:"callback",
data:{
"username":"yaofan"
}
})
})
<!-- 这种方式最主要的要求是主域名相同,假设目前a.nealyang.cn和b.nealyang.cn分别对应指定不同的ip服务器
a.nealyang.cn下有一个test.html文件
b.nealyang.cn下有一个1.html文件
-->
<p>A页面</p>
<!-- 利用iframe加载其他域下的文件 ,src中 -->
<iframestyle = "display:none" name = "iframe1" id = "iframe" src = "http://b.nealyang.cn/1.html" frameborder = "0">
</iframe>
<script type="text/javascript">
$(function(){
try{
document.domain = "nealyang.cn" //将document.domain设置为nealyang.cn,当iframe加载完毕后就可以获取nealyang.cn域下的全局对象
}catch(e){
$("#iframe").load(function(){
var jq = document.getElementById("iframe").contentWindow.$;
jq.get("http://nealyang.cn/test.json",function(data){
console.log(data);
});
})
}
})
</script>
<script type="text/javascript">
function getData(url,fn){
var iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.src = url;
iframe.onload = function(){
fn(iframe.contentWindow.location.hash.substring(1));
window.location.hash = "";
document.body.removeChild(iframe);
};
document.body.removeChild(iframe);
}
//get data from server
var url = "http://localhost:8080/data.php";
getData(url,function(data){
var jsondata = JSON.parse(data);
console.log(jsondata.name + "" +jsondata.age);
});
</script>
var onmessage = function(event){
var data = event.data;
var origin = event.origin;
}
if(typeof window.addEventListener != 'undefined'){
window.addEventListener('message',onmessage,false);
}else if(typeof window.attachEvent != 'undefined'){
window.attachEvent('onmessage', onmessage);
}
Das obige ist der detaillierte Inhalt vonDomänenübergreifende Probleme in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

Um das Problem zu lösen, dass jQuery.val() nicht verwendet werden kann, sind spezifische Codebeispiele erforderlich. Für Front-End-Entwickler ist die Verwendung von jQuery eine der häufigsten Operationen. Unter diesen ist die Verwendung der .val()-Methode zum Abrufen oder Festlegen des Werts eines Formularelements eine sehr häufige Operation. In bestimmten Fällen kann jedoch das Problem auftreten, dass die Methode .val() nicht verwendet werden kann. In diesem Artikel werden einige gängige Situationen und Lösungen vorgestellt und spezifische Codebeispiele bereitgestellt. Problembeschreibung: Wenn Sie jQuery zum Entwickeln von Front-End-Seiten verwenden, treten manchmal Probleme auf

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Welche Fragen beinhaltet die Yulong 8 Wine Master-Prüfung? Wie lautet die entsprechende Antwort? Wie kann man die Prüfung schnell bestehen? Es gibt viele Fragen, die in den Prüfungsaktivitäten zum Master of Wine beantwortet werden müssen, und wir können auf die Antworten zurückgreifen, um sie zu lösen. Bei all diesen Fragen geht es um Weinkenntnisse. Wenn Sie eine Referenz benötigen, schauen wir uns die detaillierte Analyse der Antworten auf die Prüfungsfragen zum Yakuza 8 Wine Master an! Ausführliche Erklärung der Antworten auf Fragen in der Rulong 8 Wine Master-Prüfung 1. Fragen zum Thema „Wein“. Dies ist ein destillierter Likör, der von einer von der königlichen Familie gegründeten Brennerei hergestellt wird. Er wird aus dem Zucker von Zuckerrohr gebraut, das in großen Mengen auf Hawaii angebaut wird. Wie heißt dieser Wein? Antwort: Rum 2. Frage zu „Wein“. Das Bild zeigt ein Getränk aus trockenem Ginseng und trockenem Wermut. Es zeichnet sich durch die Zugabe von Oliven aus und ist als „Cockney“ bekannt.

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert
