Co je to cross-domain? Cross-domain, kdy prohlížeč nemůže spouštět skripty z jiných webových stránek. Je způsoben homologní politikou prohlížeče, což je bezpečnostní omezení uvalené prohlížečem na Javascrip{filter}t.
Takzvaný homologní znamená, že doména, protokol a port jsou všechny stejné, nezáleží na tom, jestli tomu nerozumíte, uveďte si to tak:
http://www.itsvse.com/index.htmlvyvolathttp://www.itsvse.com/server.PHP(Ne-křížové domény)
http://www.itsvse.com/index.htmlVolání http://www.456.com/server.php (jiná primární doména: itsvse/456, cross-domain)
Přihlášení k hypertextovému odkazu je viditelné.vyvolatPřihlášení k hypertextovému odkazu je viditelné.(Poddoména odlišná: abc/def, cross-domain)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlVolání https://www.itsvse.com/server.php (různé protokoly: http/https, cross-domain)
Upozornění: localhost a 127.0.0.1, ačkoliv oba směřují na lokální verzi, jsou také cross-domain.
Když prohlížeč spustí skript javascrip{filter}t, zkontroluje, ke které stránce skript patří, a pokud není homologní, nebude vykonán.
Řešení:
1、JSONP:
Nebudu zacházet do detailů, jak ho používat, ale je třeba poznamenat, že JSONP podporuje pouze požadavky na GET, ne na požadavky POST.
2. Agent:
Napříkladwww.itsvse.com/index.htmlPokud potřebujete www.456.com/server.php zavolat, můžete napsat rozhraníwww.itsvse.com/server.phpToto rozhraní volá www.456.com/server.php na backendu, získá zpětnou hodnotu a poté ji vrátí index.html, což je proxy vzor. Je to ekvivalentní obcházení stránky prohlížeče, takže přirozeně nejde o problém s překročováním domén.
3. Upravte hlavičku na straně PHP (metoda XHR2)
Přidejte do PHP rozhraní následující dvě věty: hlavičku('Access-Control-Allow-Origin:*'); Povolit přístup ze všech zdrojů hlavičku('Access-Control-Allow-Method:POST,GET'); Způsoby, jak umožnit přístup
|