El primer parámetro del método abierto del objeto xmlhttprequest es el tipo de solicitud, y el valor se puede obtener o post. Este artículo presenta la solicitud GET.
El propósito de obtener la solicitud es principalmente para obtener datos. Aunque las solicitudes GET pueden aprobar datos, el propósito de pasar datos es decirle al servidor qué contenido nos dará.
Al usar la solicitud GET, los parámetros se pasan con la URL.
Al usar solicitudes GET, se almacenan fácilmente en caché, por lo que debe prestar atención a los problemas de almacenamiento en caché.
Al usar la solicitud GET, el lado del servidor debe usar request.QueryString [datos] para obtener datos.
Utilizamos la solicitud GET en el artículo "Instancia AJAX completa". Encontramos los siguientes problemas en ese momento:
- Cómo crear un objeto xmlhttprequest que pueda ejecutarse en la mayoría de los navegadores.
- Hay un problema de almacenamiento en caché al usar la solicitud GET
- Problema Chino confuso
Entre ellos, el primer problema se ha resuelto en el artículo "Objeto xmlhttprequest";
Para el segundo problema, el motivo es:
La solicitud GET accederá al caché cada vez para ver si hay una URL coincidente. Si lo hay, se devolverá la URL en el caché. Si no hay, se realizará una solicitud al servidor.
Solución:
1. Agregue un parámetro de cambio dinámico a la URL para encontrar que cada vez que accede a una URL diferente, de modo que se emitirá una nueva solicitud al servidor cada vez.
Para la tercera pregunta, veamos primero las razones del código confuso:
Los datos devueltos por XMLHTTP son UFT-8 de forma predeterminada. Si la página del cliente es GB2312 u otra codificación, se producirá un código confuso.
Solución:
1. Si el cliente es GB2312, entonces cuando se emite, especifique la codificación de la secuencia de salida.
2. Tanto el cliente como el servidor usan la codificación UTF-8
3. Asegúrese de usar el método EncodeUriComponent para codificar los parámetros
Presta atención al ejemplo:
El archivo HTML de la página no ha cambiado. El conocimiento del código JS es el siguiente:
<script type = "text/javaScript"> function btn_click () {// crea xmlhttprequest object var xmlhttp = window.xmlhttprequest (): new ActiveXObject ("microsoft.xmlhttp"); // Obtener el valor var de username = document.getElementById ("txt_username"). Valor; var age = document.getElementById ("txt_age"). valor; //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 ()); // Establezca la función de devolución de llamada xmlhttp.onreadyStateChange = function () {if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {document.getElementById ("resultado"). Innerhtml = xmlhtp.ResponseteExt; }} // Envía la solicitud, porque los parámetros están todos en la URL, por lo que se envía nulo aquí xmlhttp.send (nulo); } </script>
Lado del servidor:
protegido void page_load (remitente de objeto, EventArgs e) {Response.Clear (); String UserName = request.QueryString ["UserName"]; String Age = request.QueryString ["edad"]; Response.Write ("Nombre: '" + Nombre de usuario + "' <br/> Age:" + Age + "<br/> Time: '" + Datetime.Now.ToString () + ""); Respuesta.end ();}// fuente desde http://www.vevb.com/oneword/archive/2011/06/04/2072585.html