GET 用于请求服务器数据
POST 用于上传数据到服务器,或者修改服务器数据
ajax
异步通信,实现页面的局部刷新,按需获取数据,节约带宽,带来更好的用户体验
客户端与服务器在不必刷新浏览器的情况下,与服务器进行异步通讯的技术
与后台进行 HTTP 通信,无需刷新整体页面, 而只是根据自己的需求做局部页面的更新
- xml http request
- window.fetch -------- 后期出现的方法,老版本浏览器IE8以下 不支持__可以考虑 fetch 库兼容
原生语法的,promise 风格的 ____多一次 .then()
优点
页面无需刷新,用户体验好
异步通信方式,响应迅速
按需取数据,减轻服务器的压力
缺点
不支持 back 回退
对搜索引擎支持较弱
跨域: 当前地址 与 请求地址 不同 ---- 协议、域名、端口号
浏览器处于安全考虑的同源政策,不允许发送跨越的 ajax 请求
解决 ajax 跨域:
- jsonp 只能解决GET请求跨域
- cors 可以解决 GET/POST
- 代理: 在开发环境下使用比较多。
在生产环境下用 Apache 做转发(代理)也可以实现
区别ajax请求和普通的HTTP请求?
相同点: 都是向服务器提交的http请求
不同点:
普通的 HTTP 请求
得到页面
服务器端渲染数据,自动刷新页面
多页应用
ajax 请求
得到 json 数据
不会自动刷新页面,需要手动处理数据,浏览器渲染数据
单页面应用 SPA
如何发送ajax请求?
XMLHttpRequest
jquery
axios
fetch
只能解决GET请求跨域