xhr的理解
- 使用 XMLHttpRequest (XHR)对象可以与服务器交互, 也就是发送 ajax 请求
- 前端可以获取到数据,而无需让整个的页面刷新。
- 这使得 Web 页面可以只更新页面的局部,而不影响用户的操作。
区别一般Http请求和ajax请求
-
ajax请求是一种特殊的http请求
-
普通的http请求,请求回来的是一个完整的页面,浏览器接到之后会进行解析、渲染呈现页面
-
ajax请求带回来的不是一个完整的页面,而是纯数据,并且数据不会自己跑到页面上,数据会交给js代码,由于开发人员操作了dom ,数据才跑到页面上
即也就是我们所说的ajax的无刷新获取数据: 无刷新:指得是不会触发浏览器自己刷新页面(此时如果想要刷新页面呈现数据则需要自己操作dom)
-
对于服务器来说两者没有任何区别,区别在于浏览器
普通Http请求: 默认返回的是一个页面,浏览器会对其进行解析、展现
ajax请求: 默认操作是不管返回的什么都会交给开发者定义的回调函数进行处理 -
浏览器端发送请求:只有XHR或fetch发出的才是ajax请求,其他的所有的都是非ajax请求
axios和jquery风中的ajax也都是对XHR的二次封装
-
浏览器接收的响应:
(1)一般请求:浏览器一般会直接显示响应体的数据(也就是我们常说的自动刷新/跳转页面)
(2)ajax请求:浏览器不会对页面进行任何更新操作,只是调用监视的回调函数并传入响应相关数据