Parameter pertama dari metode terbuka dari objek XMLHTTPREQUEST adalah tipe permintaan, dan nilainya dapat didapat atau diposting. Artikel ini memperkenalkan permintaan GET.
Tujuan permintaan GET terutama untuk mendapatkan data. Meskipun mendapatkan permintaan dapat memberikan data, tujuan memberikan data adalah untuk memberi tahu server konten apa yang akan diberikan kepada kami.
Saat menggunakan permintaan GET, parameter dilewatkan dengan URL.
Saat menggunakan permintaan GET, mereka mudah di -cache, jadi Anda perlu memperhatikan masalah caching.
Saat menggunakan permintaan GET, sisi server harus menggunakan permintaan.QueryString [data] untuk mendapatkan data.
Kami menggunakan permintaan GET di artikel "Lengkap AJAX Instance". Kami mengalami masalah berikut pada waktu itu:
- Cara membuat objek XMLHTTPRequest yang dapat berjalan di sebagian besar browser.
- Ada masalah caching saat menggunakan permintaan mendapatkan
- Masalah kacau Cina
Di antara mereka, masalah pertama telah diselesaikan dalam artikel "XmlHttpribreest Object";
Untuk masalah kedua, alasannya adalah:
Permintaan GET akan mengakses cache setiap kali untuk melihat apakah ada URL yang cocok. Jika ada, URL dalam cache akan dikembalikan. Jika tidak ada, permintaan akan dibuat ke server.
Larutan:
1. Tambahkan parameter perubahan dinamis ke URL untuk menemukan bahwa setiap kali Anda mengakses URL yang berbeda, sehingga permintaan baru akan dikeluarkan ke server setiap kali.
Untuk pertanyaan ketiga, mari kita lihat alasan untuk kode yang kacau:
Data yang dikembalikan oleh XMLHTTP adalah UFT-8 secara default. Jika halaman klien adalah GB2312 atau pengkodean lainnya, kode kacau akan terjadi.
Larutan:
1. Jika klien adalah GB2312, maka ketika output, tentukan pengkodean aliran output.
2. Baik klien dan server menggunakan pengkodean UTF-8
3. Pastikan untuk menggunakan metode encodeuricomponent untuk menyandikan parameter
Perhatikan contoh:
File HTML halaman tidak berubah. Pengetahuan tentang perubahan kode JS adalah sebagai berikut:
<script type = "text/javaScript"> Fungsi btn_click () {// Buat objek XMLHTTPREQuest var xmlhttp = window.xmlHttpRequest (): ActiveXObject baru ("microsoft.xmlhttp"); // Dapatkan nilai var username = document.geteLementById ("txt_username"). Nilai; var usia = document.getElementById ("txt_age"). nilai; //Configure XMLHttpRequest object //Use encode URIComponent method to encode the obtained parameters//Add parameters to access different urls each time to avoid cache problems xmlHttp.open("get", "Get.aspx?username=" + encodeURIComponent(username) + "&age=" + encodeURIComponent(age) + "&random=" + Math.random ()); // Atur fungsi callback xmlhttp.onReadyStateChange = function () {if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {document.getElementById ("hasil"). INNERHTML = XMLHTP.RESPONEXT. }} // Kirim permintaan, karena parameter semuanya ada di URL, jadi null dikirim ke sini xmlhttp.send (null); } </script>
Sisi server:
void page_load yang dilindungi (pengirim objek, EventArgs e) {response.clear (); string username = request.queryString ["nama pengguna"]; string usia = request.queryString ["usia"]; Response.write ("Nama: '" + nama pengguna + "' <br/> usia:" + usia + "<br/> waktu: '" + datetime.now.tostring () + "'"); Response.end ();}// Sumber dari http://www.vevb.com/oneword/archive/2011/06/04/2072585.html