1、什么是跨域?

由浏览器同源策略限制的一类请求场景,当不同地址,不同端口,不同级别,不同协议就会构成跨域。

2、什么是同源策略限制?

所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。

3、如何解决跨域?

1、 通过jsonp跨域

2、CORS

3、 nginx代理跨域

4、什么是jsonp跨域方式?

jsonp只有在请求方式为get的时候才能使用,jQuery中jsonp可以使用post方法,但是实际上还是转换成了get方式请求,容易踩坑请注意.

JSONP 是 JSON with padding(填充式 JSON 或参数式 JSON)的简写。

JSONP实现跨域请求的原理简单的说,就是动态创建<script>标签,然后利用<script>的src 不受同源策略约束来跨域获取数据。

JSONP 由两部分组成:回调函数和数据。回调函数是当响应到来时应该在页面中调用的函数。回调函数的名字一般是在请求中指定的。而数据就是传入回调函数中的 JSON 数据。

5、什么是CORS跨域?

CORS是一个W3C标准,全称是"跨域资源共享";它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

处理方法:

后台:配置access-control-allow-origin:*,

前端:如果需要cookie,需要添加 axios.defaults.withCredentials = true;

仅需要前端处理:

可以直接手动写XML方法,手动配置access-control-allow-origin:*

6、 nginx代理跨域?

所谓代理就是在我们和真实的服务器之间有一台代理服务器,我们所有的请求都是通过它来进行转接的。

Nginx服务器中,监听同一个域名和端口,不同路径转发到客户端和服务器,把不同端口和域名的限制通过反向代理,来解决跨域问题。

7、nodejs中间件代理跨域?

利用 node.js 的中间件去处理跨域,类似于将跨域请求交给第三方,第三方去访问指定的网络,获取数据然后返回

中间插件:koa-server-http-proxy

 

posted on 2020-08-13 16:45  liumcb  阅读(140)  评论(0编辑  收藏  举报