Alanlar arası nedir? Çapraz alan, tarayıcının diğer web sitelerinden scriptleri çalıştıramadığı durumlarda. Bu, tarayıcının Javascrip{filter}t üzerinde koyduğu bir güvenlik kısıtlaması olan eş zamanlı politikasından kaynaklanır.
Sözde homolog demek, alan adının, protokolün ve portun hepsinin aynı olduğu anlamına gelir, anlamasanız da önemli değil, bir kerema ver:
http://www.itsvse.com/index.htmlçağırmakhttp://www.itsvse.com/server.PHP(Çapraz alan alanları olmayan)
http://www.itsvse.com/index.htmlhttp://www.456.com/server.php çağrısı (farklı birincil alan adları: itsvse/456, çapraz alan)
Bağlantı girişi görünür.çağırmakBağlantı girişi görünür.(Alt alan farklı: abc/def, çapraz alan)
http://www.itsvse.com:8080/index.html 调用 http://www.itsvse.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.itsvse.com/index.htmlhttps://www.itsvse.com/server.php çağrısı (farklı protokoller: http/https, çapraz alan)
Lütfen dikkat edin: localhost ve 127.0.0.1, her ikisi de local'a işaret etseler de, aynı zamanda çapraz alan alanıdır.
Tarayıcı javascrip{filter}t betikini çalıştırdığında, betikin hangi sayfaya ait olduğunu kontrol eder ve eğer eş bir sayfa değilse çalıştırılmaz.
Çözüm:
1、JSONP:
Nasıl kullanılacağına dair detaylara girmeyeceğim, ancak JSONP'nin sadece GET isteklerini desteklediği, POST isteklerini desteklemediği belirtilmeli.
2. Ajan:
Örneğinwww.itsvse.com/index.htmlwww.456.com/server.php aramanız gerekirse, bir arayüz yazabilirsinizwww.itsvse.com/server.phpBu arayüz, arka uçtaki www.456.com/server.php'yi çağırır ve geri dönüş değerini alır, ardından onu index.html'ye, yani bir vekil desenine geri döner. Bu, tarayıcı tarafını atlatmakla eşdeğerdir, yani doğal olarak alanlararası bir sorun yoktur.
3. PHP tarafındaki başlığı değiştirin (XHR2 yöntemi)
PHP arayüz betiklerine aşağıdaki iki cümleyi ekleyin: header('Erişim-Kontrol-İzin-Kaynağı:*'); Tüm kaynaklardan erişim izni header('Erişim-Kontrol-İzin-Yöntem:GÖNDER,AL'); Erişim izni verme yolları
|