ajax因为安全原因不允许跨域,我们对跨域解决主要有三种
1.jsonp,利用js的<script>标签发送请求,并且提前定义好一个函数,在服务端也写上这个函数,当服务端被解析到前端的时候,我们就可以解析出服务端的函数,从而实现调用。
我们通常使用jquery的方式,在ajax中添加一个datatype=jsonp的属性来实现跨域。
缺点,只支持get请求
优点,轻量化
2.nginx反向代理的方式,修改配置文件即可 ,但是这样可能导致语义不清。
3.cors的方式,w3c的标准,
简单请求,浏览器发送请求,携带请求头origin来源的意思,服务器响应请求头,是一种浏览器和服务器双向确认的方式。
特殊请求,浏览器会先发起一次预检请求,服务端会响应一次请求,如果预检成功,浏览器会再次发送一次请求。
缺点,会造成请求的增加
优点,支持各种请求,可以在服务端自定义规则。