Ajax最基本用法

Ajax用法:

客户端与服务器段连接步骤:

1.创建xmlhttprequest对象

2.客户端与服务器端建立连接

3.客户端向服务器端发送请求

4.服务器端向客户端进行相应

js中写:

  Get方式

1.  //封装javascript代码

//当页面加载完毕之后,再执行以下代码

window.onload = function(){

document.getElementById("ok").onclick = function(){

//1创建XMLHttpRequest对象

var xhr = ajaxFunction();

/*

 * 2 服务器端向客户端进行响应(注册监听)

 * 

 * * 使用XMLHttpRequest对象的onreadystatechange属性:监听服务器端的通信状态

 * * 使用XMLHttpRequest对象的readyState属性:获取服务器端的通信状态

 *  0 代表未初始化。 还没有调用 open 方法

代表正在加载。 open 方法已被调用,但 send 方法还没有被调用

代表已加载完毕。send 已被调用。请求已经开始

代表交互中。服务器正在发送响应

代表完成。响应发送完毕

 * 

 * * 使用XMLHttpRequest对象的status属性:获取服务器端响应首部信息中的状态码

 *  常用状态码及其含义:

404 没找到页面(not found)

403 禁止访问(forbidden)

500 内部服务器出错(internal service error)

200 一切正常(ok)

304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )

 * 

 * 使用使用XMLHttpRequest对象的responseText属性:接收服务器端的响应结果

 */

xhr.onreadystatechange = function(){

alert(xhr.readyState);

//alert(xhr.status);

if(xhr.readyState==4){

if(xhr.status==200||xhr.status==304){

//真正接收服务器端的响应结果

var data = xhr.responseText;

alert(data);

}

}

}

/*

 * 3 客户端与服务器端建立连接

 * 

 * 使用XMLHttpRequest对象的open(method, url, asynch)方法

 *  * method:请求类型,GETPOST

 *  * url:请求路径,可以是绝对路径或相对路径.

 *  * asynch:表示是否异步,默认值为true(表示异步)

 * 

 * 绝对路径与相对路径:

 *  * 绝对路径:http://localhost:8080/day03_ajax/testServlet

 *  * 相对路径:../testServlet

 * 

 */

xhr.open("get","../testServlet?timeStamp="+new Date().getTime()+"&c=9",true);

/*

 * 4 客户端向服务器端发送请求

 * 

 * 使用XMLHttpRequest对象的send()方法

 *  * 如果请求类型是GET方式的话,利用send()方法发送请求数据,服务器端接收不到

 *  * 该步骤不能被省略,写成:xhr.send(null);

 */

xhr.send("a=7&b=8");

}

//固定写法:背下来

function ajaxFunction(){

   var xmlHttp;

   try{ // Firefox, Opera 8.0+, Safari

        xmlHttp=new XMLHttpRequest();

    }

    catch (e){

   try{// Internet Explorer

         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

      }

    catch (e){

      try{

         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

      }

      catch (e){}

      }

    }

return xmlHttp;

 }

}

 

 

Post方式:

window.onload = function(){

document.getElementById("ok").onclick = function(){

var xhr = ajaxFunction();

xhr.onreadystatechange = function(){

if(xhr.readyState==4){

if(xhr.status==200){

var data = xhr.responseText;

alert(data);

}

}

}

xhr.open("post","../testServlet?timeStamp="+new Date().getTime(),true);

//手动设置请求首部信息:"Content-Type""application/x-www-form-urlencoded"

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xhr.send("a=7&b=8");

}

function ajaxFunction(){

   var xmlHttp;

   try{ // Firefox, Opera 8.0+, Safari

        xmlHttp=new XMLHttpRequest();

    }

    catch (e){

   try{// Internet Explorer

         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

      }

    catch (e){

      try{

         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

      }

      catch (e){}

      }

    }

return xmlHttp;

 }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值