什么是跨域?
想知道怎么解决跨域,当然要先知道什么是跨域,那现在让小北我来先讲讲什么是跨域。跨域是一个域下的网页去请求另一个域下的资源。严格点来说就是两个域的协议、域名、端口任何一个不同时,都会被当作跨域。当跨域访问资源时,会受到浏览器的安全限制。
同源策略
指协议、域名、端口三者相同,即使两个不同的域名指向同一个ip地址,也非同源。同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。这是一个用于隔离潜在恶意文件的重要安全机制。
常见的解决跨域的三种方式
jsonp
原理:jsonp的<script>标签不受浏览器同源策略的限制,使用时src属性指定一个跨域URL(路径)服务器在收到请求后,将数据放在指定callback里面传回来。
优缺点:优点:兼容性好,支持低版本的浏览器访问。
缺点:只支持get请求,不容易判断是否失败。
反向代理
原理: 以代理服务器来接受internet上的连接请求,然后请求转发给内部网络上服务器,并从服务器上得到的结果返回给internet上请求的客户端。此时代理服务器对外表现为一个服务器。
作用:保证内网安全,可以使用反向代理提供WAF功能,阻止Web攻击大型网络,通常将反向代理作为公网访问的地址,Web服务器是内网。
负载均衡,通过反向代理服务器来优化网站的负载。
后台配置请求头(更改header)
res.header("Access-Control-Allow-Origin","*")//允许的域名
res.header("Access-Control-Allow-Methods","PUT,POST,GET.DELETE,OPTIONS")//允许的请求的方法。
当然解决跨域的方法有很多种,小北这只写了三种最常见的。希望对你有所帮助。