Mi az a cross-domain? A doménok közötti időszak, amikor a böngésző nem tud más weboldalakról futtatni szkripteket. Ezt a böngésző homológ szabályzata okozza, amely a böngésző által Javascrip{filter}t rendszeren bevezetett biztonsági korlátozás.
Az úgynevezett homológ azt jelenti, hogy a domain név, a protokoll és a port mind ugyanaz, nem számít, ha nem érted, mondj egy gesztenya:
http://www.itsvse.com/index.htmlhívhttp://www.itsvse.com/server.PHP(Nem területi területek)
http://www.itsvse.com/index.htmlHívás http://www.456.com/server.php (különböző elsődleges domain: itsvse/456, cross-domain)
A hiperlink bejelentkezés látható.hívA hiperlink bejelentkezés látható.(Altartomány eltérő: abc/def, kereszttartomány)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlHívás https://www.itsvse.com/server.php (különböző protokollok: http/https, cross-domain)
Kérjük, vegye figyelembe: a localhost és a 127.0.0.1, bár mindkettő a helyi oldalra mutat, szintén cross-domain.
Amikor a böngésző lefuttatja a javascrip{filter}t szkripet, ellenőrzi, melyik oldalhoz tartozik a szkript, és ha nem homológ oldal, akkor nem lesz lefuttatva.
Megoldás:
1、JSONP:
Nem részletesen megyek a használatába, de meg kell jegyezni, hogy a JSONP csak a GET kéréseket támogatja, nem a POST kéréseket.
2. Ügynök:
Példáulwww.itsvse.com/index.htmlHa hívnod kell www.456.com/server.php, írhatsz egy interfésztwww.itsvse.com/server.phpEz az interfész a háttérben lévő www.456.com/server.php-t hívja, megkapja a visszaküldési értéket, majd visszaadja azt a index.html-nek, ami egy proxy mintázat. Ez egyenértékű azzal, mintha a böngésző oldalt megkerülnék, így természetesen nincs cross-domain probléma.
3. Módosítsd a fejlécet a PHP oldalon (XHR2 módszer)
Hozzáadjuk a következő két mondatot a PHP interfész szkripthez: header('Access-Control-Allow-Origin:*'); Hozzáférés engedélyezése minden forrásból header('Access-Control-Allow-Method:POST,GET'); Hozzáférés engedélyezésének módjai
|