<!DOCTYPE html>
<html lang="en">
<head>
<title>xmlhttprequest ajax demo</title>
<script type ="text/javascript" language ="javascript" >
var req; //定义变量,用来创建xmlhttprequest对象
function creatReq() // 创建xmlhttprequest,ajax开始
{
var url="./test5.json"; //要请求的服务端地址
if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
{
req=new XMLHttpRequest();
}
else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
{
req=new ActiveXObject("Microsoft.XMLHttp");
} if(req) //成功创建xmlhttprequest
{
getURL(url,function(content,error){
if(error!=null){
console.log("error"+ error)
}else{
console.log('content:'+ content);
}
})
}
}
function getURL(url,callback){
req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
req.onreadystatechange = function(){
stateback(callback);
}; //指定回调函数
req.send(null); //发送请求
}
function stateback(callback) //回调函数,对服务端的响应处理,监视response状态
{
console.log(req);
if(req.readyState==4) //请求状态为4表示成功
{
if(req.status==200) //http状态200表示OK
{
Dispaly(); //所有状态成功,执行此函数,显示数据
callback(req.responseText);
}
else //http返回状态失败
{
callback(null,new Error('this is error'));
}
}
else //请求状态还没有成功,页面等待
{
document .getElementById ("myTime").innerHTML ="数据加载中";
callback(null,new Error('this is error'));
}
} function Dispaly() //接受服务端返回的数据,对其进行显示
{
document .getElementById ("myTime").innerHTML =(req.responseText);
} </script>
</head>
<body>
<div id="myTime"></div> <input id="Button1" type="button" value="Get Time" onclick ="creatReq();"/>
</body>
</html>

  添加异常处理

<!DOCTYPE html>
<html lang="en">
<head>
<title>xmlhttprequest ajax demo</title>
<script type ="text/javascript" language ="javascript" >
var req; //定义变量,用来创建xmlhttprequest对象
function creatReq() // 创建xmlhttprequest,ajax开始
{
var url="./test5.json"; //要请求的服务端地址
if(window.XMLHttpRequest) //非IE浏览器及IE7(7.0及以上版本),用xmlhttprequest对象创建
{
req=new XMLHttpRequest();
}
else if(window.ActiveXObject) //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.
{
req=new ActiveXObject("Microsoft.XMLHttp");
} if(req) //成功创建xmlhttprequest
{
getURL(url,function(content,error){
if(error!=null){
console.log("error"+ error)
}else{
console.log('content:'+ content);
}
})
}
}
function getURL(url,callback){
req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)
req.onreadystatechange = function(){
stateback(callback);
}; //指定回调函数
req.send(null); //发送请求
}
function stateback(callback) //回调函数,对服务端的响应处理,监视response状态
{
console.log(req);
if(req.readyState==) //请求状态为4表示成功
{
if(req.status==) //http状态200表示OK
{
Dispaly(); //所有状态成功,执行此函数,显示数据
callback(req.responseText);
}
else //http返回状态失败
{
callback(null,new Error('this is error'));
}
}
else //请求状态还没有成功,页面等待
{
document .getElementById ("myTime").innerHTML ="数据加载中";
callback(null,new Error('this is error'));
}
} function Dispaly() //接受服务端返回的数据,对其进行显示
{
document .getElementById ("myTime").innerHTML =(req.responseText);
} </script>
</head>
<body>
<div id="myTime"></div> <input id="Button1" type="button" value="Get Time" onclick ="creatReq();"/>
</body>
</html>

最新文章

  1. [原]一个针对LVS的压力测试报告
  2. 在DevExpress程序中使用Winform分页控件直接录入数据并保存
  3. servlet应用及知识点总结
  4. 深入seajs源码系列一
  5. Hibernate的一级缓存
  6. AS与.net的交互——加载web上的xml
  7. UITextField-secureTextEntry
  8. WP开发笔记——日期时间DateTime.Now函数
  9. 什么是:VGA SVGA XGA SXGA
  10. Python TypeError: not enough arguments for format string
  11. 使用nodeitk进行对象识别
  12. Vue学习笔记四:跑马灯效果
  13. app:processOfficalDebugResources报错的几种解决方法;
  14. Codeforces 765F Souvenirs - 莫队算法 - 链表 - 线段树
  15. Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )
  16. poj1002 大数的 n的m次
  17. C# Language Specification 5.0 (翻译)第一章 引言
  18. 提高你的代码稳定性与可读性-lint工具
  19. 关于UI设计中的交互软件Axure7.0运用
  20. R语言统计分析应用与SAS、SPSS的比较

热门文章

  1. MacbookPro升级10.15 Catalina之后无法读写NTFS
  2. [LeetCode] 900. RLE Iterator RLE迭代器
  3. [LeetCode] 888. Fair Candy Swap 公平糖果交换
  4. ES方法使用注意
  5. vue+element 给表格添加数据,页面不实时刷新的问题
  6. 【More Effective C++ 条款3】最好不要以多态方式处理数组
  7. [转帖]centos 7 avahi-daemon服务的作用及如何关闭
  8. Jmeter参数化之数据库读取数据
  9. nginx 配置 server
  10. PYTHON的ASCII码转换