Ajax 学习笔记

Asynchronous JavaScript and XML

异步网络请求 基于XMLHttpRequest对象与服务端进行交互

优点

  • 无刷新跟新页面
  • 兼容性好

缺点

  • 浏览器不能后退,加入收藏
  • ajax 竞态关系

XMLHttpRequest

属性

属性介绍
onreadystatechange当readyState发生变化时触发
readyState请求状态码
response返回一个Blob、ArrayBuffer、Document或DOMString。类型受responseType影响
responseText返回一个DOMString。请求不成功或者未发送的情况下返回NULL
responseType响应类型
responseURL返回序列化URL、URL为空返回字符串
responseXML返回一个Document。请求未发送、不成功或者解析失败,返回null
status请求响应状态
statusText返回一个DomString ,包含http响应状态
timeout超时,定义一个最大的请求响应时间
ontimeout超时调用事件
upload上传过程
withCredentials指定跨域请求是否带有授权信息
--------------
channel一个nslChannel ,执行请求时,对象使用的通道
mozAnon布尔值,为true情况下, 请求在没有身份认证header头和cookie的情况下发送
mozSystem布尔值。为true情况下,请求将不强制执行同资源策略
mozBackgroundRequest布尔值。知识是否时服务器请求

方法

方法名作用
abort终止请求
getAllResponseHeaders返回有用CRLF分隔的相应头的字符串形式,没有收到则返回null
getResponseHeader返回指定响应头的字符串,未收到响应, 或者响应不存在该报头,返回null
opne初始化一个请求
overrideMimeType重写MIME类型
send发送请求
setRequestHeader设置HTTP请求头
openRequest初始化一个请求

事件

事件名说明
abort停止请求的时候触发
error当请求发生错误的时候触发
load请求成功完成的时候触发
loadend请求结束的时候触发
loadstart收到响应数据的时候触发
progress接收数据开始周期时触发
timeout超时未接受到数据时触发

简单实现

//创建对象
const xhr = new XMLHttpRequest()

//请求方式,地址,发送请求
xhr.open('GET','http://...?id=1212');
xhr.send();

open( method,url,async,user,passwored) 完整参数

  • method:http请求方式
  • url: DomString 发送url
  • async: 是否异步
  • user: 用户名
  • passworeed:密码
//post请求
xhr.open('POST','http...');
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("id=1212&name=my");
content-type作用
text/htmlhtml文件类型
text/xmlxml类型
text/plain纯文本
image/jpegjpeg图片
image/pngpng图片
image/gifgif图片
application/jsonjson数据
applicaiton/xmlxml数类型
application/xhtml+xmlHXTML数据格式
application/aton+xmlAtom Xml聚合格式类型
applicaiton/octet-stream二进制数据
application/x-www-form-urlencodedform表单数据被& 分隔的键值对
multipart/from-data表单文件上传使用格式类型

响应状态

XMLHttpRequest.readyState

代表着服务器响应状态

  1. unsent:创建了但没有open调用
  2. opende: 调用open
  3. headers_received: 调用send方法,头部和状态可以获得
  4. loaing: 下载响应体
  5. done: 完成

当xhr.redayState == 4 时代表服务器返回了所有数据

XMLHttpRequest.status

获取http状态码

获取响应内容

  • responseText: 一个DomString,返回一个纯文本值,当该值为""的时候 请求还没到达send();nu l l 代表请求失败
  • responseXML: 处理xml响应, send() 为到达或者失败的时候 null
  • response: 返回响应正文

跨域问题需要注意

同一个 域,协议名,域名,端口一致 例如

  1. https://www.lfweixiao.com/d01
  2. https://www.lfweixiao.com/d02

ajax 工具

http://www.axios-js.com/docs/

简化了自己编写ajax,快捷开发

底部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值