[TOC]
## 1.HTTP请求
![](https://box.kancloud.cn/618b30da973e6fd27f870dcfcb8a68c1_633x403.png)
![](https://box.kancloud.cn/508b49b3ba0093659830423099fbee38_753x299.png)
![](https://box.kancloud.cn/ad0f1310e3c6bbbc9fb1458a51fe9a2e_762x258.png)
![](https://box.kancloud.cn/d394ed69368aa15eeb67041b7caaa2fc_741x242.png)
![](https://box.kancloud.cn/bf4eb08540e7d2cba911ee921444c980_703x297.png)
## 2.请求响应
* open(method,url,asyn) //asyn值默认为true
* send()
* onreadystatechange
## 3. 一个完整的Ajax步骤
### 1.创建ajax核心对象
### 2.与服务器建立连接
### 3.发送请求
#### get请求
```
var url = "https://www.easy-mock.com/mock/5bac6df10132334db7167178/testDemo/testDemo";
var xhr = new XMLHttpRequest();
xhr.open('get',url,true);
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var txt = JSON.parse(xhr.responseText);
console.log(txt);
}
}
```
> JSON.parse()方法将json对象解析为JavaScript对象。
JSON.stringify()将javascript的值,转换为JSON字符串。
* responseText:获取字符串形式的响应数据
* status:以数字形式返回http的状态码
* readystate值代表服务器响应的变化
![](https://box.kancloud.cn/765ef0a8043818f9453715756753e277_718x354.png)
#### post请求
* 要有请求头setRequestHeader
```
<div id="test"></div>
<script>
var test = document.getElementById("test");
var xhr = new XMLHttpRequest();
xhr.open("post","https://www.easy-mock.com/mock/5b230e1e6bed703a9b488c69/www.getTest.com/push",true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(null);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var data = JSON.parse(xhr.responseText);
test.innerHTML = data.data.content
}
}
</script>
```
#### get/post的不同
> Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求
GET和POST只是发送机制不同
> GET一般用于获取/查询资源信息,而POST一般用于更新资源信息
```
1)视觉上传参, Get 方式在通过 URL 提交数据,数据 在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
2)大小 GET方式提交的数据最多只能有1024字节(浏览器限制的),而POST则没有此限制。
3)安全性 使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get ;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post 为好。
```
### 4.响应
- 效果实例
- 1.点击增加高度
- 2.tab页面切换
- 3. 列表切换
- 4. 隔行变色
- 5. swiper 轮播
- 6.vue
- 7.定时器
- 8. 向表格中添加数据
- 9 瀑布流
- 1.JavaScript基础
- 1. 变量
- 2. 调试
- 3.数据类型
- 4.转换
- 5.控制语句
- 6.运算
- 7. this
- 8 JSON对象和javascript对象的相互转换
- 2.JavaScript的控制语句
- 1. 基本控制语句
- 2.节点
- 2.1DOM补充
- 3. 函数
- js的模块化如何解决
- 不知道有什么用的
- 4.数组
- 5. String
- 补充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封装
- Ajax效果
- ajax补充
- 7. 正则
- 1.创建正则表达式
- 2. 正则的api
- 3.正则语法
- 4.例子
- 量词
- 8.面向对象
- 1.原型
- ES6
- 模块化
- 1.回调地狱
- 什么是回调地狱
- 简单封装
- promise解决回调地狱
- generator解决回调地狱
- async解决回调地狱
- 2.封装
- Ajax,promise
- JavaScript难点
- 1. 闭包/作用域
- 2.原型链
- 3. 兼容性
- 适配
- JavaScript小效果
- 字符串截取