什么是跨域(CORS)?
跨域是指浏览器不能执行其他网站上的脚本,它是由浏览器的同源策略造成的,是浏览器对 JS 的安全限制。是浏览器从一个域名网页请求另一个域名资源时,出现端口、域名、协议任一不同,都属于跨域。
常用解决跨域的方法:
通过 JSONP 解决跨域
通常为了减轻web服务器的负载,我们把js、css,img等静态资源分离到另一台独立域名的服务器上,在html页面中再通过相应的标签从不同域名下加载静态资源,而被浏览器允许,基于此原理,我们可以通过动态创建script,再请求一个带参网址实现跨域通信。
缺点:只能实现 get 请求
跨域资源共享(CORS) 解决跨域
只服务端(后端)设置Access-Control-Allow-Origin即可,前端无须设置,若要带cookie请求:前后端都需要设置。
通过 nginx代理 解决跨域
同源策略是浏览器的安全策略,不是HTTP协议的一部分。服务器端调用HTTP接口只是使用HTTP协议,不会执行JS脚本,不需要同源策略,也就不存在跨越问题。