在前端访问后端已经上线的地址,如果出现跨域可以用devserve代理解决吗?我认为是可以的,但是在群里跟别人讨论都说是后端配置的,我的理解是在开发阶段可以使用代理,然后项目上线后,一个后端服务可以对应多个前端项目,如果部署在一起的话就不会存在跨域问题,如果不在一起,再去后端配置白名单这样,但是群里的人说直接让后端配置跨域,我认为如果后端配置之后那前端的代理不就没有意义了吗?
在前端访问后端已经上线的地址,如果出现跨域可以用devserve代理解决吗?我认为是可以的,但是在群里跟别人讨论都说是后端配置的,我的理解是在开发阶段可以使用代理,然后项目上线后,一个后端服务可以对应多个前端项目,如果部署在一起的话就不会存在跨域问题,如果不在一起,再去后端配置白名单这样,但是群里的人说直接让后端配置跨域,我认为如果后端配置之后那前端的代理不就没有意义了吗?
其实你了解了跨域问题之后就知道,其实这个问题其实就是浏览器增加的安全性限制。
我们直接在服务端访问对应的地址和API都不会出现跨域的问题。
所以才会出现本地开发环境的 devServer
服务。其实就是在你的本地启动了一个HTTP服务代理转发到目标服务器上,这样我们项目在请求的时候项目地址和接口地址就会保持一致来规避掉浏览器的同源限制。
那么在项目上线之后,我们明显不可能也罢Node服务给部署到服务器(纯静态项目)去增加服务器的负担和维护成本,所以大部分情况下都是让后端给增加跨域允许的头。或者说我们前端在Nginx之类的Web服务上增加反向代理转发。
所以如果说有条件在服务端配置跨域允许的规则肯定是最直接和简单的。
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
前端代理和后端配置跨域只是两种解决不同阶段跨域问题的方法。你在开发阶段,用前端代理方便又快速。在生产环境,后端配置跨域是更稳定和更安全的方法。不冲突,阶段不同而已,意义就再开发阶段方便