前后端分离项目,如何解决跨域问题?( 二 )


前后端分离项目,如何解决跨域问题?

文章插图
用nginx这种方式是最舒服的,不需要客户端和服务端多做其他工作,对代码无入侵 。
jsonp因为script标签是不受浏览器同源策略的影响,允许跨域请求资源(我们的每一个页面都引用了大量第三方js文件) 。所以可以利用动态创建script标签,通过src属性发起跨域请求,这就是jsonp的原理 。但是jsonp只支持GET请求,所以并不是一种好的方式 。
服务端代码控制可以在服务端增加对跨域请求的支持:
前后端分离项目,如何解决跨域问题?

文章插图
这种方式相当于全局过滤器,对所有请求都过滤一遍 。
以上三种方式都可以一定程度上解决跨域问题,但是nginx配置和服务端控制不能同时存在,否则会报“Access-Control-Allow-Origin Not Allow Multiple value”的错误 。个人比较推荐nginx配置的方式,一劳永逸,不需要每个web项目都去编写跨域的代码 。
大家在工作中有没有遇到过跨域问题呢?都是怎么解决的?欢迎评论区交流讨论,共同学习~
 




推荐阅读