Mis on ristdomeenid? Domeenideülene, kui brauser ei suuda käivitada skripte teistelt veebilehtedelt. Selle põhjustab brauseri homoloogne poliitika, mis on turvapiirang, mille brauser kehtestab Javascrip{filter}t-s.
Nii-öelda homoloogne tähendab, et domeeninimi, protokoll ja port on kõik samad, pole vahet, kui sa ei saa aru, anna üks näide:
http://www.itsvse.com/index.htmlTuginedahttp://www.itsvse.com/server.PHP(Mitte-valdkondadeülene)
http://www.itsvse.com/index.htmlKõne http://www.456.com/server.php (erinev esmane domeen: itsvse/456, ristdomeen)
Hüperlingi sisselogimine on nähtav.TuginedaHüperlingi sisselogimine on nähtav.(Alamdomeen erinev: abc/def, ristdomeen)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlKutsun https://www.itsvse.com/server.php (erinevad protokollid: http/https, domeenideülene)
Palun pange tähele: localhost ja 127.0.0.1, kuigi mõlemad osutavad lokaalile, on samuti interdomeenid.
Kui brauser käivitab javascrip{filter}t skripti, kontrollib ta, millisele lehele skript kuulub, ja kui see pole homoloogne leht, siis seda ei käivitata.
Lahus:
1、JSONP:
Ma ei hakka detailidesse laskuma, kuidas seda kasutada, kuid tuleb märkida, et JSONP toetab ainult GET päringuid, mitte POST-päringuid.
2. Agent:
Näitekswww.itsvse.com/index.htmlKui pead www.456.com/server.php helistama, saad kirjutada liidesewww.itsvse.com/server.phpSee liides kutsub www.456.com/server.php taustal ja saab tagastusväärtuse ning seejärel tagastab selle index.html-le, mis on proksimuster. See on võrdne brauseri poole vahelejätmisega, seega pole loomulikult valdkondadevahelist probleemi.
3. Muuda päist PHP poolel (XHR2 meetod)
Lisa PHP liidese skriptile järgmised kaks lauset: header('Access-Control-Allow-Origin:*'); Luba ligipääsu kõigist allikatest header('Access-Control-Allow-Method:POST,GET'); Viisid ligipääsu võimaldamiseks
|