Mitä on cross-domain? Verkkotunnusten välinen käyttö, kun selain ei pysty suorittamaan muiden verkkosivustojen skriptejä. Se johtuu selaimen homologisesta käytännöstä, joka on selaimen asettama turvallisuusrajoitus Javascrip{filter}t:ssä.
Niin sanottu homologi tarkoittaa, että verkkotunnus, protokolla ja portti ovat kaikki samat, ei haittaa, vaikka et ymmärtäisi, anna ihmeessä:
http://www.itsvse.com/index.htmlvedotahttp://www.itsvse.com/server.PHP(Ei ristiinalue)
http://www.itsvse.com/index.htmlKutsu http://www.456.com/server.php (eri ensisijaisen domain: itsvse/456, verkkotunnusten välinen)
Hyperlinkin kirjautuminen on näkyvissä.vedotaHyperlinkin kirjautuminen on näkyvissä.(Alialue eri: abc/def, ristiinalue)
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 (eri protokollat: http/https, monitoimiala)
Huomioithan: localhost ja 127.0.0.1, vaikka molemmat osoittavat paikalliseen, ovat myös eri domaineja.
Kun selain suorittaa javascrip{filter}t-skriptin, se tarkistaa, mille sivulle skripti kuuluu, ja jos se ei ole homologinen sivu, sitä ei suoriteta.
Ratkaisu:
1、JSONP:
En mene yksityiskohtiin siitä, miten sitä käytetään, mutta on huomattava, että JSONP tukee vain GET-pyyntöjä, ei POST-pyyntöjä.
2. Agentti:
Esimerkiksiwww.itsvse.com/index.htmlJos sinun täytyy soittaa www.456.com/server.php, voit kirjoittaa rajapinnanwww.itsvse.com/server.phpTämä rajapinta kutsuu www.456.com/server.php taustalla ja saa palautusarvon, ja palauttaa sen sitten index.html:lle, joka on proxy-malli. Se vastaa selainpuolen ohittamista, joten tietysti ei ole ongelmaa eri domaineissa.
3. Muokkaa otsikkoa PHP-puolella (XHR2-menetelmä)
Lisää seuraavat kaksi lausetta PHP-käyttöliittymäskriptiin: header('Access-Control-Allow-Origin:*'); Salli pääsy kaikista lähteistä header('Access-Control-Allow-Method:POST,GET'); Tapoja sallia pääsy
|