Čo je to cross-domain? Cross-domain, keď prehliadač nemôže vykonávať skripty z iných webových stránok. Je spôsobená homologickou politikou prehliadača, čo je bezpečnostné obmedzenie uvalené prehliadačom na Javascrip{filter}t.
Takzvaný homologický znamená, že doménové meno, protokol a port sú všetky rovnaké, nezáleží na tom, či tomu nerozumiete, dajte si to na rovinu:
http://www.itsvse.com/index.htmlvyvolaťhttp://www.itsvse.com/server.PHP(Ne-naprieč doménami)
http://www.itsvse.com/index.htmlVolajte http://www.456.com/server.php (iná primárna doména: itsvse/456, cross-domain)
Prihlásenie na hypertextový odkaz je viditeľné.vyvolaťPrihlásenie na hypertextový odkaz je viditeľné.(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.htmlVolanie https://www.itsvse.com/server.php (rôzne protokoly: http/https, cross-domain)
Upozorňujeme: localhost a 127.0.0.1, hoci oba smerujú na lokálne, sú tiež cross-domain.
Keď prehliadač spustí skript javascrip{filter}t, skontroluje, ku ktorej stránke skript patrí, a ak nie je homologická stránka, nebude spustená.
Riešenie:
1、JSONP:
Nebudem zachádzať do detailov, ako ho používať, ale treba poznamenať, že JSONP podporuje iba požiadavky na GET, nie požiadavky na POST.
2. Agent:
Napríkladwww.itsvse.com/index.htmlAk potrebuješ zavolať www.456.com/server.php, môžeš napísať rozhraniewww.itsvse.com/server.phpToto rozhranie volá www.456.com/server.php na backende, získa vrátenú hodnotu a potom ju vráti index.html, čo je proxy vzor. Je to ekvivalentné obchádzaniu stránky prehliadača, takže prirodzene neexistuje problém s medzidoménovým prístupom.
3. Upraviť hlavičku na strane PHP (metóda XHR2)
Pridajte nasledujúce dve vety do PHP rozhrania skriptu: hlavička ('Access-Control-Allow-Origin:*'); Povoľte prístup zo všetkých zdrojov hlavička ('Access-Control-Allow-Method:POST,GET'); Spôsoby, ako umožniť prístup
|