Contoh artikel ini menganalisis perkara yang perlu diperhatikan semasa menetapkan document.domain dalam js untuk mencapai pelaksanaan merentas domain. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
document.domain
Digunakan untuk mendapatkan nama domain halaman web semasa.
Contohnya, masukkan dalam bar alamat:
Kami juga boleh menetapkan nilai pada atribut document.domain, tetapi terdapat sekatan Anda hanya boleh menetapkannya pada nama domain semasa atau nama domain asas.
Contohnya:
Tugasan di atas semuanya berjaya kerana www.jb51.net ialah nama domain semasa dan jb51.net ialah nama domain asas.
Tetapi tugasan berikut akan menyebabkan ralat "parameter tidak sah":
Oleh kerana cctv.net dan www.jb51.net bukan nama domain semasa mahupun nama domain asas nama domain semasa, ralat akan berlaku.
Ini adalah untuk menghalang seseorang daripada mengubah suai document.domain secara berniat jahat untuk mencuri data merentas domain.
Gunakan document.domain untuk mencapai merentas domain:
Prasyarat: Kedua-dua nama domain ini mestilah tergolong dalam nama domain asas yang sama Dan protokol serta port yang digunakan mestilah konsisten, jika tidak document.domain tidak boleh digunakan untuk merentas domain
Javascript melarang dua atau lebih halaman daripada domain berbeza daripada saling beroperasi atas sebab keselamatan.
Halaman dari domain yang sama akan saling beroperasi tanpa sebarang masalah.
Sebagai contoh, dalam halaman web (a.html) aaa.com, halaman web (b.html) dalam bbb.com diperkenalkan menggunakan iframe.
Pada masa ini, kandungan dalam b.html boleh dilihat dalam a.html, tetapi javascript tidak boleh digunakan untuk mengendalikannya. Oleh kerana kedua-dua halaman tersebut tergolong dalam domain yang berbeza, sebelum beroperasi, js akan menyemak sama ada domain kedua-dua halaman adalah sama Jika ia sama, operasi akan dibenarkan Jika ia tidak sama, operasi akan ditolak.
Adalah mustahil untuk menukar a.html dan b.html ke domain yang sama menggunakan JS. Kerana nama domain asas mereka tidak sama. (Jika anda memaksa JS menukarnya ke dalam medan yang sama, "ralat parameter tidak sah" yang sama seperti di atas akan dilaporkan)
Jadi jika anda memperkenalkan halaman web lain dalam aaa.com ke dalam a.html, tidak akan ada masalah kerana domain adalah sama.
Terdapat satu lagi situasi, dua subdomain:
aaa.xxx.com
bbb.xxx.com
Halaman web (a.html) dalam aaa memperkenalkan halaman web (b.html) dalam bbb,
Pada masa ini, kandungan dalam b.html tidak boleh dimanipulasi dalam a.html.
Kerana document.domain adalah berbeza, satu ialah aaa.xxx.com dan satu lagi ialah bbb.xxx.com.
Pada masa ini, kita boleh menukar domain dua halaman kepada yang sama melalui Javascript,
Perlu menambah kedua-dua a.html dan b.html:
Dengan cara ini kedua-dua halaman boleh beroperasi antara satu sama lain. Maksudnya, "cross-domain" antara nama domain asas yang sama direalisasikan.
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.