日期:2014-05-16  浏览次数:20713 次

几种ajax的使用

1. Jquery中使用ajax方法
$.ajax({
type: "get", //(默认: "GET") 请求方式 ("POST" 或 "GET"), 默认为 "GET"。注意:其它 HTTP 请求方法,如 PUT 和 DELETE 也可以使用,但仅部分浏览器支持。
url: "http://localhost/xxsb/demo/all_sjdctemp.jsp",
timeout : 3000 ,//设置请求超时时间(毫秒)。此设置将覆盖全局设置。
dataType : 'text',//
beforeSend: function(XMLHttpRequest){
// 发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头
},
success: function(data, textStatus){
   alert(data);
// 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态
},
complete: function(XMLHttpRequest, textStatus){
//请求完成后回调函数 (请求成功或失败时均调用)。
},
error: function(){
alert('调用错误');
//请求出错处理
//(默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,(可能)捕获的错误对象。
}
});
2. 基本的实现方法
var xmlHttp = false;
//如果使用较新版本的 Internet Explorer,则需要使用对象 Msxml2.XMLHTTP,而较老版本的 Internet //Explorer 则使用 Microsoft.XMLHTTP。非IE则需要XMLHttpRequest。
try {
  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
  try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e2) {
    try{
            xmlHttp = new XMLHttpRequest();
    catch(e3){
        alert("您的浏览器不支持AJAX技术");
    }
  }
}

function send(){
  var url = "/demo.action"
//注意下写的顺序,有时候顺序写错了会出错
  xmlHttp.open("GET", url, true);  //open函数说明见下方
  xmlHttp.onreadystatechange = callback; //调用回调函数对服务器进行响应
  xmlHttp.send(null);  //一般的内容用url发送信息即可,特殊需求可用send发送信息,这是url发送                        //信息的写法
}

//回调函数 取得服务器回传的信息
function callback{
if(xmlHttp.readystatechange
  if (xmlHttp.readyState == 4) {   //详见HTTP就绪状态
    if (request.status == 200){    //详见HTTP状态代码
      var response = xmlHttp.responseText;
    }
  }
}

open()参数
request-type:发送请求的类型。典型的值是 GET 或 POST,但也可以发送 HEAD 请求。
url:要连接的 URL。
asynch:如果希望使用异步连接则为 true,否则为 false。该参数是可选的,默认为 true。
username:如果需要身份验证,则可以在此指定用户名。该可选参数没有默认值。
password:如果需要身份验证,则可以在此指定口令。该可选参数没有默认值。
通常使用其中的前三个参数

HTTP就绪状态
HTTP 就绪状态表示请求的状态或情形。它用于确定该请求是否已经开始、是否得到了响应或者请求/响应模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在 Ajax 应用程序中需要了解五种就绪状态:

    0:请求没有发出(在调用 open() 之前)。
    1:请求已经建立但还没有发出(调用 send() 之前)。
    2:请求已经发出正在处理之中(这里通常可以从响应得到内容头部)。
    3:请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应。
    4:响应已完成,可以访问服务器响应并使用它。

与大多数跨浏览器问题一样,这些就绪状态的使用也不尽一致。您也许期望任务就绪状态从 0 到 1、2、3 再到 4,但实际上很少是这种情况。一些浏览器从不报告 0 或 1 而直接从 2 开始,然后是 3 和 4。其他浏览器则报告所有的状态。还有一些则多次报告就绪状态 1。在上一节中看到,服务器多次调用 updatePage(),每次调用都会弹出警告框 —— 可能和预期的不同!

HTTP状态代码
404 该页面不存在
403 和 401  所访问数据受到保护或者禁止访问
200 一切顺利
3. prototype实现ajax
<script type="text/javascript" src="prototype.js"/>
function demo(){
     var url="demo.action";    //请求路径
     var pars="";//请求参数  如完整请求路径为http://www.demo.com/demo&d1=2,
                         //则url="http://www.demo.com/demo,pars="d1=2"
     var ajax=new Ajax.Request(url,{method:"post",parameters:pars,onComplete:callback});
  //callback为回调方法
      //var ajax=new Ajax.Updater(div,url,{method:"post",parameters:pars,evalScripts:true});
&nb