Vad är cross-domain? Tvärdomän, när webbläsaren inte kan köra skript från andra webbplatser. Den orsakas av webbläsarens homologa policy, som är en säkerhetsbegränsning som webbläsaren har infört på Javascrip{filter}t.
Det så kallade homologa betyder att domännamn, protokoll och port är samma, det spelar ingen roll om du inte förstår, ge en kommentar:
http://www.itsvse.com/index.htmlåkallahttp://www.itsvse.com/server.PHP(Icke-tvärdomän)
http://www.itsvse.com/index.htmlKalla http://www.456.com/server.php (annan primär domän: itsvse/456, tvärdomän)
Inloggningen med hyperlänken är synlig.åkallaInloggningen med hyperlänken är synlig.(Subdomän annorlunda: abc/def, tvärdomän)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlAnropar https://www.itsvse.com/server.php (olika protokoll: http/https, cross-domain)
Observera: localhost och 127.0.0.1, även om båda pekar på local, är också domänkryssande.
När webbläsaren kör javascrip{filter}t-skriptet kommer den att kontrollera vilken sida skriptet tillhör, och om det inte är en homolog sida kommer det inte att köras.
Lösning:
1、JSONP:
Jag kommer inte gå in på detaljer om hur man använder det, men det bör noteras att JSONP endast stöder GET-förfrågningar, inte POST-förfrågningar.
2. Agent:
Till exempelwww.itsvse.com/index.htmlOm du behöver anropa www.456.com/server.php kan du skriva ett gränssnittwww.itsvse.com/server.phpDetta gränssnitt anropar www.456.com/server.php på backend och hämtar returvärdet, och returnerar det sedan till index.html, vilket är ett proxymönster. Det motsvarar att kringgå webbläsarsidan, så det finns naturligtvis inget problem med domänkors.
3. Modifiera headern på PHP-sidan (XHR2-metoden)
Lägg till följande två meningar i PHP-gränssnittets skript: header('Access-Control-Allow-Origin:*'); Tillåt åtkomst från alla källor header('Access-Control-Allow-Method:POST,GET'); Sätt att möjliggöra åtkomst
|