Tiga cara untuk mencapai akses merentas domain dalam kemahiran js_javascript

WBOY
Lepaskan: 2016-05-16 15:26:51
asal
1697 orang telah melayarinya

Akses merentas domain JavaScript ialah masalah yang sering dihadapi oleh pembangun web Apakah skrip yang dimuatkan pada satu domain memperoleh atau mengendalikan atribut dokumen pada domain lain disenaraikan di bawah. :
1. Pelaksanaan merentas domain berdasarkan iframe
Pelaksanaan merentas domain berdasarkan iframe memerlukan kedua-dua domain tersebut mempunyai ciri-ciri aa.xx.com, bb.xx.com, iaitu, kedua-dua halaman mesti tergolong dalam domain asas (contohnya, kedua-dua xxx. com, atau xxx .com.cn), gunakan protokol yang sama (contohnya, kedua-duanya ialah http) dan port yang sama (contohnya, kedua-duanya adalah 80 Dengan cara ini, menambah document.domain pada kedua-dua halaman pada masa yang sama). boleh merealisasikan fungsi halaman induk memanggil halaman anak Kodnya adalah seperti berikut :
Halaman 1:

<html> 
<head> 
 <script> 
  document.domain = "xx.com"; 
  function aa(){ 
   alert("p"); 
  } 
 </script> 
</head> 
<body> 
  <iframe src="http://localhost:8080/CmsUI/2.html" id="i"> 
   
  </iframe> 
  <script> 
 document.getElementById('i').onload = function(){ 
   var d = document.getElementById('i').contentWindow; 
   d.a(); 
    
 }; 
  </script> 
 </body> 
</html> 
Salin selepas log masuk

Halaman 2:

<html> 
 <head> 
 <script> 
  document.domain = "xx.com"; 
  function a(){ 
  alert("c"); 
   } 
 </script> 
 </head> 
 <body> 
 </body> 
</html> 
Salin selepas log masuk

Pada masa ini, halaman induk boleh memanggil fungsi halaman anak untuk mencapai akses merentas domain js
2. Pelaksanaan merentas domain berdasarkan teg skrip
Teg skrip itu sendiri boleh mengakses sumber dalam domain lain dan tidak dihadkan oleh dasar asal penyemak imbas yang sama Anda boleh membuat teg skrip pada halaman secara dinamik:

var script = document.createElement('script'); 
script.src = "http://aa.xx.com/js/*.js"; 
document.body.appendChild(script); 
Salin selepas log masuk

Dengan cara ini, fail js daripada domain lain boleh dimuatkan dengan mencipta teg skrip secara dinamik, dan kemudian fungsi fail js yang dimuatkan boleh dipanggil melalui halaman ini. Kelemahan ini ialah dokumen daripada domain lain tidak boleh dimuatkan , hanya fail jsonp yang dilaksanakan dengan cara ini jsonp menghantar parameter panggil balik ke domain lain, dan membungkus nilai parameter panggil balik dan rentetan json ke dalam fungsi javascript melalui latar belakang domain lain dan mengembalikannya teg skrip, pelayar Rentetan yang dikembalikan akan dihuraikan dan dilaksanakan mengikut JavaScript, merealisasikan penghantaran data antara domain.
Sokongan untuk jsonp dalam jquery juga berdasarkan penyelesaian ini.
3.Kaedah proksi belakang
Kaedah ini boleh menyelesaikan semua masalah merentas domain, iaitu, bahagian belakang digunakan sebagai proksi, dan setiap permintaan untuk domain lain dipindahkan ke bahagian belakang domain ini Bahagian belakang domain ini mengakses domain lain dengan mensimulasikan permintaan http, dan kemudian mengembalikan hasil yang dikembalikan Untuk meja depan, kelebihannya ialah sama ada dokumen atau fail js yang sedang diakses, ia boleh menjadi domain silang.

Tiga kaedah di atas untuk mencapai akses merentas domain dalam js diberikan kepada anda terlebih dahulu Jika anda belajar dan belajar dengan teliti, anda pasti akan mendapat sesuatu

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan