Rumah > Artikel > hujung hadapan web > Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe Merentas Subdomain?
Mengakses URL Induk daripada iframe Merentas Subdomain
Mengakses URL halaman induk dari dalam iframe biasanya mudah jika kedua-dua halaman berada pada domain yang sama. Walau bagaimanapun, apabila iframe dan halaman induk berada pada subdomain yang berbeza, sekatan skrip merentas domain menghalang akses terus ke URL induk.
Sekatan Skrip Rentas Tapak
Kerentanan skrip merentas tapak berlaku apabila skrip hasad pada satu tapak web dapat mengakses dan melaksanakan kod pada tapak web lain. Dasar keselamatan penyemak imbas menguatkuasakan sekatan ketat untuk menghalang kelemahan tersebut daripada mengeksploitasi data sensitif. Salah satu sekatan ini ialah skrip tidak boleh mengakses data daripada tapak web pada domain yang berbeza tanpa kebenaran yang jelas.
Subdomain dan Skrip Merentas Tapak
Sementara subdomain secara logiknya muncul berkaitan dengannya domain utama, dari sudut keselamatan, mereka dianggap sebagai entiti yang berasingan. Oleh itu, apabila iframe pada satu subdomain cuba mengakses URL halaman induk pada subdomain yang lain, penyemak imbas mentafsirkannya sebagai percubaan skrip merentas tapak dan menafikan akses.
Penyelesaian Alternatif
Jika keperluan adalah semata-mata untuk mendapatkan URL halaman utama (URL bar alamat penyemak imbas), penyelesaian adalah tersedia:
var url = (window.location != window.parent.location) ? document.referrer : document.location.href;
Kod ini menyemak sama ada iframe dan halaman induk berada pada subdomain yang berbeza. Jika ya, ia menggunakan sifat document.referrer untuk mendapatkan URL halaman yang dipautkan kepada iframe. Jika mereka tidak berada pada subdomain yang berbeza, ia menggunakan sifat document.location.href untuk mendapatkan semula URL halaman induk.
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses URL Induk daripada Iframe Merentas Subdomain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!