Artikel ini terutama memperkenalkan metode penggunaan dasar API komunikasi di HTML5. Artikel ini melibatkan dua modul penting untuk membangun komunikasi real-time dan domain silang: komunikasi pesan lintas dokumen dan XMLHTTPREQUEST level 2. Teman yang membutuhkannya dapat merujuk pada 1.
Komunikasi pesan lintas dokumen dapat memastikan bahwa komunikasi silang-asal dilakukan dengan aman antara iframes, tab, dan windows. Ini mendefinisikan API postmessage sebagai cara standar untuk mengirim pesan. Sangat mudah untuk menggunakan postmessage untuk mengirim pesan, kodenya adalah sebagai berikut:
chatframe.contextWindow.postmessage ('halo, dunia', 'http: //www.example.com');
Saat menerima pesan, Anda hanya perlu menambahkan fungsi penanganan acara ke halaman. Ketika sebuah pesan tiba, ditentukan apakah akan memproses pesan dengan memeriksa sumber pesan.
Acara pesan adalah acara DOM dengan atribut data dan asal. Atribut data adalah pesan aktual yang disampaikan oleh pengirim, sedangkan atribut asal adalah sumber pengirim.
API postmessage tidak hanya mampu berkomunikasi antara dokumen homolog, tetapi juga berguna ketika browser tidak mengizinkan komunikasi non-homolog. Mengingat konsistensi dan kemudahan penggunaannya, postmessage juga direkomendasikan ketika berkomunikasi antara dokumen homolog. API postmessage harus selalu digunakan dalam komunikasi di lingkungan JavaScript, seperti saat menggunakan komunikasi pekerja web HTML5.
1.1 Memahami keamanan sumberKonsep Sumber Pendahuluan HTML5 Glory (Origin) telah mengklarifikasi dan meningkatkan keamanan domain. Sumber adalah subset alamat yang digunakan untuk membangun hubungan kepercayaan di jaringan. Sumber itu terdiri dari aturan, tuan rumah, dan port.
Konsep sumber tidak mempertimbangkan jalur.
HTML5 mendefinisikan serialisasi sumber. Sumber muncul sebagai string di API dan protokol.
Aturan keamanan untuk postmessage memastikan bahwa pesan tidak dikirimkan ke halaman sumber yang tidak terduga. Saat mengirim pesan, pengirim mendefinisikan sumber penerima. Jika jendela yang dikirim untuk memanggil postmessage tidak memiliki sumber tertentu (misalnya, pengguna melompat ke situs lain), browser tidak akan mengirim pesan.
Demikian pula, saat menerima pesan, sumber pengirim juga digunakan sebagai bagian dari pesan. Untuk menghindari pemalsuan, sumber pesan disediakan oleh browser. Penerima dapat memutuskan pesan mana yang akan diproses dan pesan mana yang harus diabaikan. Kita dapat menyimpan daftar putih yang memberitahu browser untuk memproses pesan hanya dari sumber tepercaya.
Yang terbaik adalah tidak mengevaluasi string dari pihak ketiga. Selain itu, hindari menggunakan metode eval untuk memproses string internal aplikasi. Anda dapat menggunakan JSON melalui Window.json atau Json, .org Parsers.
1.2 Dukungan browser untuk komunikasi pesan silangPraktik umum adalah mendeteksi apakah properti withredential ada di objek XMLHTTPREQUEST:
Kode javascript menyalin konten ke clipboard