//参数说明url:请求文件地址//fnSucc:请求成功执行的函数,请求成功的条件为readyState状态码为4;且status状态码为200,status状态为浏览器请求返回的状态码//在fnSucc中有一个参数,其来至于服务求返回的responseText,由于浏览器与服务器之间的数据传输涉及到安全及加密问题,readyState状态码为3时,浏览器需要对返回的数据进行处理//其包含返回解密等操作。//fnFaild函数是当请求发生错误才处理的函数,其有一个参数为服务器返回给浏览器错误的状态码,其中最常见的为404状码。function ajax(url,fnSucc,fnFaild){ //1.创建ajax if(window.XMLHttpRequest){ var oAjax = new XMLHttpRequest(); } else{ var oAjax = new ActiveXObject("MicrosoftHTTP"); } //alert(oAjax); //链接到服务器open(方法,访问的文件名,异步传输) //通过天时间戳使得每次请求的到不同地址,达到清除缓存的作用 oAjax.open("GET",url,true); //发送数据 oAjax.send(); //接受服务器返回的数据 /* ajax.readyState有五个状态码 0:请求未初始化(还没有调用 open())。 1:请求已经建立,但是还没有发送(还没有调用 send())。 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。 3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。 4:响应已完成;您可以获取并使用服务器的响应了。 */ oAjax.onreadystatechange = function(){ if(oAjax.readyState == 4){ if(oAjax.status == 200){ fnSucc(oAjax.responseText); } else{ fnFaild(oAjax.status); } } } }
调用方法
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ajax</title> <script type="text/javascript" src="myajax.js"></script> <script type="text/javascript"> window.onload = function(){ var oBtn = document.getElementById("btn"); oBtn.onclick = function (){ //ajax(url,fnSucc,fnFaild); ajax("aaa.txt",function(str){ alert(str); },function(state){ alert(state); }); } } </script> </head> <body> <button id="btn">按钮</button> </body> </html>
时间: 2024-10-07 08:21:38