首先我们得明白为什么会出现跨域问题:
跨域问题是浏览器对于ajax请求的一种安全限制:当一个页面发起ajax请求时,只能是当前页面路径下的页面可以获得数据,能有效防止跨站攻击
解决办法:
目前常见的解决办法有三种:
1.jsonp
最早的解决方案,利用script标签实现跨域的原理。
限制:
1)需要服务的支持。
2)只能发起Get请求
2.nginx反向代理
思路是:利用nginx反向代理把跨域设置为不跨域,支持各种请求方式。
缺点:需要在nginx进行额外配置,语义不清晰。
3.CORS
规范化的跨域请求解决方法,安全可靠。
优势:
1)在服务端进行控制是否允许跨域,可自定义规则
2)支持各种请求方式
缺点:
会造成额外的请求。
一般推荐使用CORS解决跨域问题
由于nginx的配置有点复杂,因此没有进行深入研究
2.CORS解决方案