一般我们都是使用框架来进行AJAX技术的实现,在早期还没有这些js框架的时候是如何实现ajax的技术的呢?

创建XHR对象的代码如下:

  1. var xmlhttp;
  2. function XHRsubmit(){
  3. var userName = document.getElementById("username").value;
  4. //创建XMLHttprequest对象,每个浏览器的这个对象都是不相同的,所以这个是最复杂的一步
  5. //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
  6. if(window.XMLHttpRequest){
  7. //针对FireFox,Mozillar,Opera,Safari,IE7,IE8,IE9
  8. xmlhttp = new XMLHttpRequest();
  9. //针对某些特定版本的mozillar浏览器的BUG进行修正
  10. if(xmlhttp.overrideMimeType){
  11. xmlhttp.overrideMimeType("text/xml");
  12. //alert(xmlhttp);
  13. }
  14. }else if(window.ActiveXObject){
  15. //针对IE6,IE5.5,IE5通过ActiveXObject创建
  16. var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
  17. for(var i =0; i<activexName.length; i++){
  18. try{
  19. //取出一个控件名进行创建,如果创建成功就终止循环
  20. //如果创建失败,会抛出异常,然后继续循环,继续尝试创建
  21. xmlhttp = new ActiveXObject(activexName[i]);
  22. break;
  23. }catch(e){
  24. }
  25. }
  26. //queryXMLHttpRequest对象创建成功
  27. }
  28. if(xmlhttp){
  29. alert("XMLHttpRequest对象创建成功");
  30. }else{
  31. alert("XMLHttpRequest对象创建失败");
  32. return ;
  33. }
  34. //注册回调函数
  35. //注册回调函数时,只需要函数名不要加括号
  36. xmlhttp.onreadystatechange = callback2;
  37. //GET方式请求
  38. //xmlhttp.open("GET","TestAction!test2.action",true);
  39. //POST方式请求需要自己设置http的请求头
  40. xmlhttp.open("POST","TestAction!test2.action",true);
  41. xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  42. //4.发送数据,开始和服务端交互
  43. //同步下,send这句话会等服务端数据回来后才执行完
  44. //异步下,sned这句话会立即执行
  45. xmlhttp.send("name="+$("#username").val());
  46. //xmlhttp.send(null);
  47. }
  48. //回调函数
  49. function callback2(){
  50. //alert(xmlhttp.readyState);
  51. //5接收响应数据
  52. //判断对象的状态是否交互完成
  53. if(xmlhttp.readyState == 4){
  54. //判断http的交互是否成功
  55. if(xmlhttp.status == 200){
  56. //获取服务器端返回的数据
  57. //获取服务器端输出的纯文本数据
  58. var responseText = xmlhttp.responseText;
  59. //将数据显示在页面上
  60. //通过dom的方式找到div标签对应的元素节点
  61. var divNode = document.getElementById("result");
  62. //设置元素节点中的html内容
  63. divNode.innerHTML = responseText;
  64. }else{
  65. alert("出错了");
  66. }
  67. }else{
  68. //alert("出错了1");
  69. }
  70. }
  1. <input id="username" name="username" value="请输入..."></input>
  2. <input type="button" onclick="XHRsubmit()" value="使用XHR的post方法提交"/>

转载于:https://blog.51cto.com/xqsea/1119643

创建最原始的XMLHttprequest对象相关推荐

  1. 转载 Xmlhttprequest对象池

    2019独角兽企业重金招聘Python工程师标准>>> 在ajax应用中,通常一个页面要同时发送多个请 求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就 ...

  2. [转]建一个XMLHttpRequest对象池

    在ajax应用中,通常一个页面要同时发送多个请求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的XMLHttpRequest对象,也 ...

  3. 建一个XMLHttpRequest对象池

    在ajax应用中,通常一个页面要同时发送多个请 求,如果只有一个XMLHttpRequest对象,前面的请求还未完成,后面的就会把前面的覆盖掉,如果每次都创建一个新的 XMLHttpRequest对象 ...

  4. Ajax入门(创建 XMLHttpRequest 对象)

    XMLHttpRequest 是 AJAX 的基础. 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject). XMLHttpRequest ...

  5. AJAX - 创建XMLHttpRequest 对象

    AJAX - 创建XMLHttpRequest 对象 ·                          Previous Page ·                          Next ...

  6. Ajax基础--创建XMLHttpRequest对象

    var http_request = false; function send_request(url) {//初始化,指定处理函数,发送请求的函数 http_request = false;//开始 ...

  7. ajax(判断浏览器创建xmlhttprequest对象),XMLHTTPRequest对象的创建与浏览器的兼容问题...

    MLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpRequest ...

  8. Ajax中XMLHttpRequest对象的详细解析

    | responseXML | 服务器的相应,表示为XML,这个对象可以解析为一个DOM | | status | 服务器的HTTP状态码 | | statusText | HTTP状态的对应文本 | ...

  9. XMLHttpRequest 对象

    XMLHttpRequest 对象用于在后台与服务器交换数据. 什么是 XMLHttpRequest 对象? XMLHttpRequest 对象用于在后台与服务器交换数据. XMLHttpReques ...

最新文章

  1. 大数据目标检测推理管道部署
  2. 中tr不能显示字符_BeautifulSoup4中find 和find_all的比较
  3. R语言plotly可视化:plotly可视化箱图、相同数据集对比使用不同分位数算法的可视化差异(quartilemethod参数、linear、inclusive、exclusive)
  4. 方立勋_30天掌握JavaWeb_(JSP+JavaBean实现)简单计算器
  5. android获取设备的唯一编号,android如何获取设备的唯一设备码
  6. ring0和ring3的区别
  7. PHP for 循环
  8. web手机服务器系统,web手机服务器系统
  9. vivado使用方法(初级)
  10. 手指静脉图像采集终端的设计和实现
  11. gallary 实现类似viewpage 的效果 左右可见
  12. 如何把app运行在手表和电视上
  13. 保姆级 | ChatGPT接入微信教程
  14. 计算机教室在哪儿英语,教室的英文是什么
  15. React: error An unexpected error occurred: “EPERM: operation not permitted, rename...
  16. (301,302,304,404,500)等HTTP状态码含义
  17. MTK相机调试adb命令
  18. 【Go】Goland下载与安装教程(详细)
  19. redis设计原理009持久化策略
  20. 改善程序员生活质量的3+10习惯

热门文章

  1. Weblogic Server 的下载,安装配置与部署
  2. mysql模糊查询索引失效_MySql学习笔记(九):索引失效
  3. IDEA切换全屏模式
  4. mysql 备份脚本 linux,LINUX中MySQL如何按时备份脚本
  5. mysql的底层数据结构_MySQL索引底层数据结构实现原理
  6. python开发环境哪个好 博客园_我选用的Python开发环境
  7. vue ---- 动态组件
  8. RabbitMQ学习笔记:安装环境
  9. fastjson转json字符串按字母大小排序
  10. 《Android Studio开发实战 从零基础到App上线(第2版)》常见问题解答