Hva er tverr-domene? Cross-domain, når nettleseren ikke kan kjøre skript fra andre nettsteder. Den skyldes nettleserens homologe policy, som er en sikkerhetsrestriksjon pålagt av nettleseren på Javascrip{filter}t.
Den såkalte homologe betyr at domenenavn, protokoll og port alle er like, det spiller ingen rolle om du ikke forstår, gi en klassiker:
http://www.itsvse.com/index.htmlpåkallehttp://www.itsvse.com/server.PHP(Ikke-tverrdomene)
http://www.itsvse.com/index.htmlKall http://www.456.com/server.php (annet primærdomene: itsvse/456, kryssdomene)
Innloggingen med hyperkoblingen er synlig.påkalleInnloggingen med hyperkoblingen er synlig.(Subdomene forskjell: abc/def, kryssdomene)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlKalle https://www.itsvse.com/server.php (forskjellige protokoller: http/https, kryssdomene)
Vennligst merk: localhost og 127.0.0.1, selv om begge peker mot local, er også kryssdomene.
Når nettleseren kjører javascrip{filter}t-skriptet, vil den sjekke hvilken side skriptet tilhører, og hvis det ikke er en homolog side, vil det ikke bli kjørt.
Løsning:
1、JSONP:
Jeg skal ikke gå i detalj om hvordan man bruker det, men det bør nevnes at JSONP kun støtter GET-forespørsler, ikke POST-forespørsler.
2. Agent:
For eksempelwww.itsvse.com/index.htmlHvis du trenger å kalle www.456.com/server.php, kan du skrive et grensesnittwww.itsvse.com/server.phpDette grensesnittet kaller www.456.com/server.php på backend og henter returverdien, og returnerer den deretter til index.html, som er et proxy-mønster. Det tilsvarer å omgå nettlesersiden, så det er naturlig nok ikke noe problem med tvers av domener.
3. Endre headeren på PHP-siden (XHR2-metoden)
Legg til følgende to setninger i PHP-grensesnittskriptet: header ('Access-Control-Allow-Origin:*'); Tillatt tilgang fra alle kilder header('Access-Control-Allow-Method:POST,GET'); Måter å gi tilgang på
|