对ajax基础的掌握随笔

原始的ajax,在第一个页面定义如下:

 1         function createAjax() {
 2             var xmlhttp;
 3             if (window.ActiveXObject)
 4                 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");//对ie浏览器创建
 5             else if (window.XMLHttpRequest)
 6                 xmlhttp = new XMLHttpRequest();//对其他浏览器创建
 7             return xmlhttp;
 8         }
 9     //ajax_POST
10         function ajaxPOST() {
11             var xmlhttp = createAjax();//创建
12             var name = document.getElementById("name").value;
13             var pwd = document.getElementById("pwd").value;
14             xmlhttp.open("post", "get.aspx", true);//get/post,  url  ,  是否异步传输
15             xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //post方式必须加上的一句
16             xmlhttp.onreadystatechange = function () {    //状态变化时执行的函数
17 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 18 document.getElementById("result").innerHTML = xmlhttp.responseText; 19 } 20 xmlhttp.send("name="+name+"&pwd="+pwd);//发送 21 } 22 //ajax_GET 23 function ajaxGET() { 24 var xmlhttp = createAjax(); 25 var name = document.getElementById("name").value; 26 var pwd = document.getElementById("pwd").value; 27 xmlhttp.open("get", "get.aspx?name="+name+"&pwd="+pwd, true); 28 xmlhttp.onreadystatechange = function () { 29 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 30 document.getElementById("result").innerHTML = xmlhttp.responseText; 31 } 32 xmlhttp.send(null); 33 }
onreadyStateChange事件是在readyState属性发生改变时触发的
readyState的值表示了当前请求的状态,在事件处理程序中可以根据这个值来进行不同的处理。
readyState有五种可取值0:尚未初始化,1:正在加载,2:加载完毕,3:正在处理;4:处理完毕。一旦readyState属性的值变成了4,就可以从服务器返回的响应数据进行访问了。
Status存储了服务器端返回的Http请求响应代码,它表示请求的处理结果.
Http状态码含义:
200 请求成功
202 请求被接受但处理未完成
400 错误请求
404 请求资源未找到
500 内部服务器错误

接着在data.aspx页面cs文件中的PageLoad中写如下代码:

1             Response.Clear();
2             string name = Request.QueryString["name"];
3             string pwd = Request.QueryString["pwd"];
4             Response.Write("名字是:" + name + "<br />密码是:" + pwd);
5             Response.End();

这样,这个ajax程序就完成了。

有点麻烦是不是?倘若用JQuery的ajax,那么事情变得简单得多。

data.aspx.cs页面不动,将第一个页面改为:

 1  $(function () {
 2              $("#btn").click(function () {
 3                  var name = document.getElementById("name").value;
 4                  var pwd = document.getElementById("pwd").value;
 5                 $("#result").load("get.aspx?name=" + name + "&pwd=" + pwd, function (responseText, textStatus, XMLHttpRequest) {    //JQueryAjaxGet
 6                     document.getElementById("result").innerHTML = responseText;
 7                 });     //JQueryAjaxGet
 8                 $("#result").load("get.aspx", { "name": name,"pwd":pwd }, function (responseText, textStatus, XMLHttpRequest) {                        document.getElementById("result").innerHTML = responseText;                
 9                 });     //JQueryAjaxPost        
10          });
11 });

可以看到,不需要创建xmlHttp对象,只需要一个load()方法。
load()方法

对于get:   url,回调函数(不需要返回success)

对于post: url,param,回调函数

回调函数function(responseTest,textStatus,XMLHttpRequest){},其中

responstTest        //请求返回的内容

textStatus           //请求状态:success,error

XMLHttpRequest  //XMLHttpRequest对象

原文地址:https://www.cnblogs.com/dengshaojun/p/3289058.html