Sebab iframe nested Baidu tidak mempunyai akses merentas domain ialah halaman utama Baidu menetapkan medan Access-Control-Allow-Origin untuk membenarkan akses merentas domain. Apabila kami membenamkan halaman utama Baidu dalam halaman web, penyemak imbas akan menghantar permintaan kepada pelayan Baidu dan pelayan Baidu akan mengembalikan pengepala respons dengan medan Access-Control-Allow-Origin bahawa ia dibenarkan. Senarai nama domain yang dilawati mengandungi nama domain halaman web semasa, jadi akses merentas domain dibenarkan.
Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.
Dalam pembangunan web, kita sering menghadapi situasi di mana kita perlu meletakkan halaman web dalam halaman web lain. Untuk mencapai fungsi ini, kita boleh menggunakan elemen iframe HTML. Elemen iframe membolehkan kami membenamkan halaman web dalam halaman web lain, dan alamat halaman web yang akan dibenamkan boleh ditentukan dengan menetapkan atribut src.
Walau bagaimanapun, atas pertimbangan keselamatan, penyemak imbas melaksanakan Dasar Asal Yang Sama, yang mengehadkan skrip dalam halaman web untuk hanya mengakses sumber dari asal yang sama (protokol, nama domain dan port yang sama). Ini bermakna jika halaman web cuba mengakses sumber daripada asal yang berbeza melalui skrip, penyemak imbas akan menyekat operasi ini, sekali gus melindungi keselamatan dan privasi pengguna.
Masalah merentas domain adalah masalah biasa dalam pembangunan web, kerana dalam aplikasi praktikal, kita selalunya perlu membenamkan kandungan daripada domain yang berbeza dalam halaman web. Walau bagaimanapun, perkara yang menarik ialah apabila kami cuba membenamkan halaman utama Baidu dalam halaman web, tiada masalah merentas domain berlaku.
Kenapa ni? Sebabnya ialah halaman utama Baidu menetapkan medan Access-Control-Allow-Origin dalam pengepala respons HTTP Medan ini menentukan nama domain yang dibenarkan untuk mengakses sumber. Apabila penyemak imbas menerima pengepala respons ini, ia akan menyemak sama ada nama domain yang diminta berada dalam senarai akses yang dibenarkan, dan jika ya, akses merentas domain akan dibenarkan.
Jadi, apabila kami membenamkan halaman utama Baidu dalam halaman web, penyemak imbas akan menghantar permintaan kepada pelayan Baidu dan pelayan Baidu akan mengembalikan pengepala respons dengan medan Access-Control-Allow-Origin, dan penyemak imbas akan semak medan ini, didapati bahawa senarai nama domain yang dibenarkan untuk diakses mengandungi nama domain halaman web semasa, jadi akses merentas domain dibenarkan.
Perlu diambil perhatian bahawa kaedah akses merentas domain ini hanya terpakai pada halaman web seperti halaman utama Baidu yang mempunyai set medan Access-Control-Allow-Origin. Untuk halaman web lain yang tidak mempunyai medan ini ditetapkan, penyemak imbas akan memprosesnya mengikut dasar asal yang sama dan menghalang akses merentas domain.
Ringkasan
Sebab iframe bersarang dalam Baidu tidak wujud merentas domain ialah halaman utama Baidu menetapkan medan Access-Control-Allow-Origin untuk membenarkan akses merentas domain. Contoh ini memberitahu kami bahawa dengan menetapkan pengepala respons pada bahagian pelayan, kami boleh menyelesaikan beberapa masalah akses merentas domain dan memberikan pengalaman pengguna yang lebih baik. Pada masa yang sama, kami juga diingatkan untuk memberi perhatian kepada keselamatan dan kesahihan akses merentas domain semasa pembangunan dan mematuhi peraturan dasar asal yang sama.
Atas ialah kandungan terperinci Mengapakah Baidu bersarang iframe tidak mempunyai masalah merentas domain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!