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

开发笔记:Ajax简单封装

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ajax简单封装相关的知识,希望对你有一定的参考价值。学习

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Ajax简单封装相关的知识,希望对你有一定的参考价值。



学习Ajax时,虽然只是简单学习,但是其中有get与post提交的方式,使用起来也没有特别方便,所以将Ajax简单封装一下

首先需要了解Ajax的原理以及执行步骤,



a1 页面 发生事件

1 创建xhr对象

2 打开ajax链接通道,链接服务器,配置信息和参数

3 发送数据到服务器

4 设置回调函数

5 服务器接收请求跟数据,处理请求, 做出响应

6 回调函数接收数据,执行回调函数

7 更新页面

接下来就是Ajax的封装


function ajax(method, url, postData, opt) {//方法,地址(get与post不同),属性值,元素
var xhr = null;
//open方法 创建一个新的http请求,并指定此请求的方法、URL以及验证信息
if (window.XMLHttpRequest) {//XMLHttpRequest可扩展超文本传输请求
xhr = new XMLHttpRequest;//现代浏览器
} else if (windou.ActiveXObject) {
//ActiveXObject对象是启用并返回 Automation 对象的引用,
xhr = new ActiveXObject("Microsoft.XMLHTTP");//ie
}
if (method == "get") {
xml.open(method, url + postData, true);//例:url="/checkUserFn?username=",postData=username //方法,地址+属性值,异步
xhr.send(null);//发送空值
}
else {
xhr.open(method, url, true);//例:url=checkUserFn
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded", "charset=utf-8");
//发送表单格式的数据,charset=utf-8可带可不带(x-www-form-urlencoded)值对大小写不敏感
// xhr.setRequestHeader("Content-type","application/json; charset=utf-8");//发送json格式的数据
// xhr.setRequestHeader("Content-type", "text/plain; charset=utf-8");//不指定Content-type时,此是默认值
// xhr.setRequestHeader("Content-type", "text/html; charset=utf-8");//发送html文本
xhr.send(postData);//向服务器发送请求; 例("username="+username)
}
xhr.Onreadystatechange= function () {
//存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
if (xhr.readyState == 4 && xhr.status == 200) {
//readyState存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。==4表示接收完毕了
// 0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪
// xhr.status表示处理的结果是OK的
opt.innerHTML = xhr.responseText;//ajax请求加载完成之后才能正确获取responseText的值
}
}
}
//缺陷,不能打乱传参数的顺序

  其中部分借阅其他资料,有缺陷的地方欢迎指正

 


推荐阅读
  • h5调用本地摄像头和麦克风一
    h5调用本地摄像头和麦克风一,Go语言社区,Golang程序员人脉社 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 2023年最新指南:如何在PHP中屏蔽警告和错误
    本文详细介绍了如何在PHP中屏蔽警告和错误,包括多种方法和最佳实践,帮助开发者提升代码质量和安全性。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文探讨了 Canvas 元素在不同尺寸设置下出现变形失真的原因,并详细解释了 HTML 尺寸和 CSS 尺寸的区别及其对视觉效果的影响。 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文详细介绍了在编写jQuery插件时需要注意的关键要点,包括模块化支持、命名规范和性能优化等内容,旨在帮助开发者提高插件的质量和可维护性。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
author-avatar
尛丶俊_188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有