1.原生ajax(Asynchronous JavaScript And XML):
什么是ajax,通俗来讲就是实现前后端交互的手段(不是一种新的语言,可以理解为一种标准,准,还是遵循js的写法(当然目前我刚好学习到原生js)),通过ajax可以实现浏览器中向服务器发送异步请求(这个异步嘛可以查阅参考基本的网络接口技术),且这种请求是无需刷新来获取数据的。
2.关于XML
什么是XML?就是一种数据的表现方式,常见于前端开发当中,它被设计用来传输和存储数据,前面发,后面收,前面收,后面发。另外,就XML而言,它和HTM类似,不同的是HTML中的标签都是预定义好的,一个萝卜一个坑,div就是div ,ul就是ul,而XML中的标记(标签不是很合适)却是自己定义,我想咋样就咋样。就比如说,你有一个对象,是一个学生,那么学生就应该具备部分属性,例如,姓名,年龄,性别,学号,班级,成绩等。那么这些属性我们可以根据汉语来自定义标记name ,age,sex,id,classid,achevement and so on。
比如说我有一个学生数据:
name = "xuwukong" ; age = 18 ; gender = "男" ;
用 XML 表示:
<student>
<name>xuwukong</name>
<age>18</age>
<gender>男</gender>
</student>
但是现在主流的数据交互格式已经被json取代,原因就是xml太麻烦了,用json表示比较轻松,例如{"name":"xuwukong","age":"18","gender":"男"};
3.ajax的优缺点
正如上面所说的那样,ajax的优点就是无需刷新页面进行事件对象(客户端网页中某一坨事件)与服务器之间的数据交互。允许用户根据事件具体来更新部分页面内容。
但是问题也是有的,那就是ajax是没有记忆的,它是用完即抛型,官方点就是没有浏览历史,不能支持回退,存在跨域问题(就是你a.com不能b.com间进行资源交换)。SEO(搜索引擎优化)不太友好。
4.http协议(超文本传输协议,详细规定了浏览器和万维网服务器之间相互通信的规则),协议流程请求报文和响应报文阶段。
请求报文:行-头-空行-体
行:GET / URL / HTTP1.1
头: HOST:atguigu.com
Cookie:name-guigu
Content-type:application/x-wwo-form-urlencoded
User-Agent: chrome 83
空行:
体: username=admin&password=admin
#响应报文
行: HTTP/1.1 200 OK
头:Content-Type:text/html; charset=utf-8
Content-length:2048
Content-encoding:gzip
空行:
体:
<html>
<head>
</head>
<body>
<h1></h1>
</body>
</html>
4.ajax的使用
1.原生ajax的使用都是通过操作对象进行的,即XMLHttpRequest,AJAX的所有操作都是通过对象进行的。
2.使用步骤
创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
创建设置请求信息
xhr.open(method,url)
//当然还需要设置请求头,但是一般可以不设置的
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
发送请求
xhr.send(body) //get请求时不用传body参数,只有post请求时使用
接收响应
//xhr.responseXML
//xhr.responseText
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
var text = xhr.responseText;
console.log(text);
}
}