javascript之处理Ajax错误
来源:互联网 发布:淘宝虚拟网店不让开了 编辑:程序博客网 时间:2024/06/06 17:18
使用Ajax须留心两类错误。它们的区别源于视角的不同。
第一类错误是从XMLHttpRequest对象的角度看到的问题:某些因素阻止了请求发送到服务器,例如DNS无法解析主机名,连接请求被拒绝,或者URL无效。
第二类错误是从应用程序的角度看到的问题:它们发生于请求成功发送至服务器,服务器接受请求,进行处理并生成响应,但该相应并不指向你期望的内容时。例如:如果你请求的URL不存在,这类问题就会发生。
有三种方式可以处理这些错误,如下代码所示:
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8"> <title>上海远地资产管理有限公司</title> <meta name="author" content="jason"/> <meta name="description" content="上海远地资产管理有限公司(简称:远地资产),是一家专业的互联网金融服务平台."/> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/></head><body> <div> <button>Apples</button> <button>Cherries</button> <button>Bananas</button> <button>Cucumber</button> <button id="badhost">Bad Host</button> <button id="badurl">Bad URL</button> </div> <div id="target"> 加载内容 </div> <div id="errormsg"></div> <div id="statusmsg"></div> <script> var buttons=document.getElementsByTagName("button"); for(var i=0;i<buttons.length;i++){ buttons[i].onclick=handleButtonPress; } var httpRequest; function handleButtonPress(e){ clearMessages(); httpRequest=new XMLHttpRequest(); httpRequest.onreadystatechange=handleResponse; httpRequest.onerror=handleError; try{ switch (e.target.id){ //处理请求错误:请求已生成,但主机名不能被DNS解析 case "badhost": httpRequest.open("GET","http://a.nodomain/doc.html"); break; //处理设置错误:向XMLHttpRequest对象传递了错误的数据,比如格式不正确的URL case "badurl": httpRequest.open("GET","http://"); break; //处理应用程序错误:请求已成功完成,但当你请求某个不存在的文档时,会获得404的状态码; default: httpRequest.open("GET", e.target.innerHTML+".html"); break; } httpRequest.send(); }catch(error){ displayErrorMsg("try/catch",error.message); } } function handleError(e){ displayErrorMsg("Error event",httpRequest.status+httpRequest.statusText); } function handleResponse(){ if(httpRequest.readyState==4){ var target=document.getElementById("target"); if(httpRequest.status==200){ target.innerHTML=httpRequest.responseText; }else{ document.getElementById("statusmsg").innerHTML="Status:"+httpRequest.status+" >>"+httpRequest.statusText; } } } function displayErrorMsg(src,msg){ document.getElementById("errormsg").innerHTML=src+": "+msg; } function clearMessages(){ document.getElementById("errormsg").innerHTML=""; document.getElementById("statusmsg").innerHTML=""; } </script></body></html>
0 0
- javascript之处理Ajax错误
- JavaScript之错误处理
- Javascript 之错误处理篇
- Javascript 错误处理之抛出自定义错误
- JavaScript之错误处理,函数对象
- JavaScript基础系列之七 错误处理
- Ajax 错误处理
- javascript处理Ajax对象
- jQuery MiniUI开发系列之:Ajax处理超时、服务端错误
- Django之模板继承与ajax使用错误处理~
- javascript错误处理(1)
- javascript错误处理(2)
- JavaScript错误处理
- JavaScript 错误处理
- JavaScript 错误处理
- javascript 错误处理
- Javascript错误处理
- JavaScript错误处理
- 交互式makefile
- CCF 竞价集合 Java实现
- android httpclient
- IOS开发系列--IOS程序开发概览
- WEKA “Detailed Accuracy By Class”和“Confusion Matrix”含义
- javascript之处理Ajax错误
- 关于solr schema.xml 和solrconfig.xml的解释
- 让你在求职中脱颖而出的小技巧
- 【sdk】Eclipse更新sdk,设置红杏公益代理
- 在eclipse中导出javadoc报"错误: 编码GBK的不可映射字符"解决办法
- 三段保留的私有地址
- Permutations II
- Windows下Node.js安装和配置
- javascript基础(三)