热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用XMLHttpRequest进行AJAXPOST和GET请求

本文介绍了如何通过XMLHttpRequest对象在不同浏览器中实现AJAX的POST和GET请求,并详细说明了XMLHttpRequest的五个状态及其含义。

let xhr = null; // 初始化 XMLHttpRequest 对象 function initializeXhr() { if (window.XMLHttpRequest) { // 非 IE 浏览器或 IE7 及以上版本 xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE6 或更早版本 try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { console.error('Failed to create XMLHttpRequest object:', e); } } } // 构建查询字符串 function buildQueryParams() { const firstName = document.getElementById('firstName').value; const middleName = document.getElementById('middleName').value; const birthday = document.getElementById('birthday').value; return `firstName=${firstName}&middleName=${middleName}&birthday=${birthday}`; } // 发送 GET 请求 function sendGetRequest() { initializeXhr(); const url = 'Get.aspx'; xhr.open('GET', url, true); xhr.Onreadystatechange= handleResponse; xhr.send(); } // 发送 POST 请求 function sendPostRequest() { initializeXhr(); const queryParams = buildQueryParams(); const url = `Post.aspx?timeStamp=${new Date().getTime()}`; xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.Onreadystatechange= handleResponse; xhr.send(queryParams); } // 处理响应 function handleResponse() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } }

XMLHttpRequest 对象支持五种不同的状态,这些状态反映了请求的不同阶段:

  • 0 - 未初始化:尚未调用 send() 方法。
  • 1 - 载入:已调用 send() 方法,请求已开始发送。
  • 2 - 载入完成:send() 方法执行完毕,响应内容已完全接收。
  • 3 - 交互:正在处理响应内容。
  • 4 - 完成:响应内容处理完毕,可在客户端访问。

参考资料:https://www.cnblogs.com/nnavvi/p/5527359.html


推荐阅读
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • 本文探讨了如何在Node.js环境中拦截由Axios库发出的AJAX请求,并提供了详细的解决方案。 ... [详细]
  • 在React中使用setState时遇到错误,本文将详细分析错误原因并提供解决方案。 ... [详细]
  • 事件是程序各部分之间的一种通信方式,也是异步编程的一种实现形式。本文将详细介绍EventTarget接口及其相关方法,以及如何使用监听函数处理事件。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 使用 jQuery 实现页面加载进度条
    页面加载进度条是提升用户体验的重要工具,通过在页面头部显示一个加载状态,并在页面完全加载后隐藏,可以有效减少用户的等待焦虑。本文将详细介绍如何使用 jQuery 实现这一功能。 ... [详细]
  • php三角形面积,335宝石大全
    php三角形面积,335宝石大全 ... [详细]
  • 本文介绍了一种通过设置主题(Theme)来实现快速启动的Android引导页,并详细说明了如何避免因不同屏幕分辨率导致的图片拉伸问题。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文探讨了 Java 中 HttpClient 和 HtmlUnit 的区别,重点介绍了它们的功能和应用场景。 ... [详细]
  • 阿里云 Aliplayer高级功能介绍(八):安全播放
    如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
author-avatar
红烧大青虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有