最近开始了ajax的学习,为了巩固复习所学知识,我准备将他们总结一下,以方便我的学习。大家也可以共同进步,互相学习。
首先我们要清楚一件事,ajax到底是什么?
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
第一个知识点:
http 请求过程
1.建立tcp网络连接
2.客户端:发送请求头+请求体
3.服务端:返回响应头+响应体
4.断开tcp网络连接
5.浏览器渲染响应体
第二个知识点:
请求组成部分
1.请求行 :又分为请求方法和Http协议版本
2.请求头
3.空行
4.请求体
响应组成部分
1.状态行: 又分为http协议版本,状态码,状态消息
接下来我给大家列出来一些比较常见的状态码
200 | 请求成功 |
301 | 永久移动到新的位置 |
404 | 请求失败 |
500 | 服务器遇到未知的错误 |
503 | 服务器由于临时的服务器过载或者是维护,无法解决当前的请求 |
507 | :服务器无法存储完成请求所必须的内容 |
2.响应头
3.空行
4.响应体
第三个知识点:
ajax步骤
1.创建 var xhr=newXMLHttpRequest()
2.打开 xhr.open("post",url)
3.发送 设置请求头 xhr.setRequestHeader(‘Content-Type’,
‘application/x-www-form-urlencoded’);
xhr.send(data)
4.监听 xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200){xhr.responseText}; }
第四个知识点:
json
1.字符串转js JSON.parse(str)
2.js对象转json字符串 JSON.stringify(obj)
3.json字符串是JavaScript对象格式表示的一种字符串(本质就是字符串)
4.{“key”:“value”} key必须双引号包裹 value值:布尔,null,undefined,string,Number,Array,Object(没有函数)
第五个知识点:
文件的上传
1.获取文件 var file=document.getelementByid(xxx). files[0] var form=new FormData(); form.append("file",file);
2. ajax xhr =new XMLHttpRequest(); xhr.open("POST",url) xhr.send(form); xhr.onreadystatechange=function(){}
第六个知识点:
xhr对象
1.readystate 准备状态
0 | 未初始化 |
1 | 未发送 |
2 | 未响应 |
3 | 部分响应 |
4 | 响应完成 |
2.responseText 响应的文本
3.status 状态 200成功
4.onreadystatechange 监听状态变化
第七个知识点:
请求方法
1.POST
2.GET
POST与GET的区别
post | get |
修改增加服务器数据 | 通常向服务器获取数据 |
请求参数在地址栏不可见 | 在地址栏显示请求参数 |
不可以缓存与收藏书签 | 可以缓存与收藏书签 |
理论上向服务器传输数据没有限制 | 最多向服务器传参2k |
3.put 添加
4.delete 删除
5.head 只发请求头
6.options 选项
7.trace 回显
8.connect 管道
第八个知识点:
JQ中的ajax
1.jq中ajax底层都来自$.ajax() 分三层
2.顶层
.load(url) | 把加载的内容放到jq节点中 |
$.getscript(url) | 动态加载JavaScript并执行 |
$.getJSON(url) .then(function(res){ }) | 加载json数据,res就是动态加载的json内容 |
2.中层
$.get(url) .then(function(res){}) | url请求的地址 |
$.post(url,data) .then(function(res){}) | data请求的数据 |
3.基层
$.ajax({url:“请求的地址”,data:“请求的数据”,method:“请求方法,post,get”,success:成功请求的回调函数,error:失败请求回调,complete:成功失败都执行}) .then(function(res){成功后的回调}) .catch(function(err){失败后的回调})
这些只是最近的学习成果,日后学到新的知识也会继续总结,与君共勉