后端是否应该主动用cors?

我们公司的是前后端分离的,我感觉往往后端程序员会给 生产环境开cors,但是不给我本地的前端请求开cors,这个是某种最佳实践吗?

在这种前后段分离的模式的情况下,后端程序员是否应该主动给我门前端开 本地的和部署环境开cors?

我是不是本来应该理直气壮的这么去要求,而不是花时间自己设置proxy?

阅读 2.9k
4 个回答

开发环境可以允许跨域比如说 localhost127.0.0.1,但是最终部署在生产环境时肯定会把这些允许跨域关闭,只允许指定的域名,或者直接使用 Nginx 的反向代理。

但这个事情,并不是说是“理直气壮”去要求的,而是要前后端运维商量着来。主要看你们项目组的习惯的,并没有一个业内公认规则/公俗说一定要怎么怎么样来做。

比如说我之前的项目组A就是默认测试环境允许 localhost,上线后关闭。但现在的项目组B则是需要前端手动去配置proxy
最终生产环境都是不设置跨域头,都在 Nginx 中配置反代。

其实一般来说在搭建基础环境的时候,都会把这些东西配置好,因为不管如何都会有提前配置好几套环境变量,配置 devServer 的同时,加上 proxy 只是顺手而已。

其实你也可以直接在浏览器中配置关闭跨域限制,这样的未来所有的跨域限制不会出现了,但是生产、测试环境依旧是需要处理的。

  1. 我觉得开发环境开不开无所谓,毕竟前端开发环境通常也要用开发服务器,代理只是很简单一行代码搞定的事情。
  2. 生产环境通常和开发环境有很大差异,不是简单的一两行代码能控制的,甚至不是后端程序员控制的。所以跟最佳实践没关系,更多的是“不必要”,以及“未必有效”。
  3. 但是我觉得题主怨气很大,这个不太应该。建议把心态放平和,不要有那么多情绪,本来是一件小事,非要上纲上线对你并没有好处。

协商解决,或者找领导定个方案规范类,当然你也可以提议。


CORS可能是后端应用配置的,也可能是Nginx做的配置。

后端做吧 就一个头信息的事儿

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