前端上线地址跨域?

在前端访问后端已经上线的地址,如果出现跨域可以用devserve代理解决吗?我认为是可以的,但是在群里跟别人讨论都说是后端配置的,我的理解是在开发阶段可以使用代理,然后项目上线后,一个后端服务可以对应多个前端项目,如果部署在一起的话就不会存在跨域问题,如果不在一起,再去后端配置白名单这样,但是群里的人说直接让后端配置跨域,我认为如果后端配置之后那前端的代理不就没有意义了吗?

阅读 1.5k
4 个回答

前端代理和后端配置跨域只是两种解决不同阶段跨域问题的方法。你在开发阶段,用前端代理方便又快速。在生产环境,后端配置跨域是更稳定和更安全的方法。不冲突,阶段不同而已,意义就再开发阶段方便

其实你了解了跨域问题之后就知道,其实这个问题其实就是浏览器增加的安全性限制。
我们直接在服务端访问对应的地址和API都不会出现跨域的问题。
所以才会出现本地开发环境的 devServer 服务。其实就是在你的本地启动了一个HTTP服务代理转发到目标服务器上,这样我们项目在请求的时候项目地址和接口地址就会保持一致来规避掉浏览器的同源限制。
那么在项目上线之后,我们明显不可能也罢Node服务给部署到服务器(纯静态项目)去增加服务器的负担和维护成本,所以大部分情况下都是让后端给增加跨域允许的头。或者说我们前端在Nginx之类的Web服务上增加反向代理转发。

所以如果说有条件在服务端配置跨域允许的规则肯定是最直接和简单的。

你要明白 webpack 的 devServer 就是反代理,
上线之后一般用 Nginx 启动服务器和代理配置,
一般你们后端不找茬的话,Nginx 都是后端配置

我觉的你的理解没有问题
image.png

开发阶段的跨域前端用devserve解决,上线后如果跨域则后端解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题