ajax
一、什么是ajax?
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
- AJAX 不是新的编程语言,而是一种使用现有标准的新方法
- AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下
XML 可拓展性标记语言(重量级数据格式)
作用:网络传输和配置文件
虽然 Ajax 中的 x 代表 XML,但是现在 JSON 的诸多优势 JSON 的使用比 XML 更加普遍。 JSON 和 XML 都用于在 Ajax 模型中封装数据
Ajax并不是一个新技术,而是多个技术的整合:
- HTML
- CSS
- JavaScript
- DOM
- XML
- XMLHttpRequest 对象
- XMLHttpRequest 是 Ajax 的核心。
二、ajax的工作原理
Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面。
三、创建一个xhr(XMLHttpRequest)对象
封装一个ajax方法:同步
步骤1:得到xhr核心对象
步骤2:调用open方法(请求方式,请求路径,同步/异步)
步骤3:发送请求
步骤4:接受相应的结果 进行判断
封装一个ajax方法:异步
1、得到核心对象
2、准备参数
3、发送请求
4、利用onreadystatechange事件,它会自动触发,相应数据回来的时候,会触发
异步的post请求
异步的get请求方法
跨域
一、什么是跨域
CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问就会遇到跨域问题。
二、同源策略
同源策略是对浏览器的一种安全机制,如果出现协议、域名、端口号不统一,就会产生跨域
三、常见的跨域场景
四、常见的解决跨域方案
- 使用非官方的跨域解决方案jsonp,采用一些src属性的标签,不受限制的访问外部资源,并且结合callback获取数据,前后端协商
- 在后端设置cors Access-Control-Allow-Origin:*
- 服务器代理 proxy server
- postMessage