json 基础
- json:JavaScript Object N 哦他提哦你(js 对象表示法);
- json:独立于任何编程语言,几乎所有的编程语言都提供了访问 json 数据的 api 接口;
- json:是一种语法,用来序列化其他语言创建的数据类型;
- json:仅支持 6 种数据类型:对象,数组,数值,字符串,布尔值,null
- json:只是借用了 js 中的一些数据表示语法,与 js 并无关系;
js 解析 json 的 api
- json.stringify():将 js 对象,序列化为 json 字符串;
- json.parse():将 json 字符串,解析为 js 对象;
XMLHttpRequest 对象(xhr 对象)
xhr 请求步骤
- 创建 xhr 对象:
const xhr = new XMLHttpRequest()
- 配置 xhr 参数:
xhr.open(type, url)
- 处理 xhr 响应:
xhr.onload = (...) => {...}
- 发送 xhr 请求:
xhr.send(...)
- 创建 xhr 对象:
xhr 对象常用属性
- responseType 设置响应类型
- response 响应文本
xhr 对象常用方法
- open(type, url) 配置请求参数
- send(data/null) 发送请求
xhr 对象常用事件
- load() 请求成功
- error() 请求失败
get/post 区别
- get 是 url 传参,post 是 request body 请求体传参;
- get 回退无影响,post 回退会重复提交;
- get 生成 url 可做书签,post 不可以;
- get 只能对 url 进行编码,post 支持多种编码;
- get 请求参数会保留在历史记录中,post 参数不保留;
- 参数长度受限制,post 无限制;
- get 只接受 ascii 码字符,post 无限制;
- get,post 底层实现是一致的,都是基于 http 协议;
- get 也可以带上 request body,post 也可以带上 url 参数;
- get 产生一个 tcp 数据包,post 产生两个 tcp 数据包;
- get 产生一个请求,post 产生两个请求;
- get 请求,浏览器将 header,data 一起发出,服务器响应 200 成功;
- post 请求,浏览器先发出 header,得到响应 100 continue,在发出 data 得到响应 200;
- 并非所有的浏览器的 post 都产生二次 http 请求,firefox 就只产生一次;