我们公司的是前后端分离的,我感觉往往后端程序员会给 生产环境开cors,但是不给我本地的前端请求开cors,这个是某种最佳实践吗?在这种前后段分离的模式的情况下,后端程序员是否应该主动给我门前端开 本地的和部署环境开cors?我是不是本来应该理直气壮的这么去要求,而不是花时间自己设置proxy?
开发环境可以允许跨域比如说 localhost、127.0.0.1,但是最终部署在生产环境时肯定会把这些允许跨域关闭,只允许指定的域名,或者直接使用 Nginx 的反向代理。但这个事情,并不是说是“理直气壮”去要求的,而是要前后端运维商量着来。主要看你们项目组的习惯的,并没有一个业内公认规则/公俗说一定要怎么怎么样来做。比如说我之前的项目组A就是默认测试环境允许 localhost,上线后关闭。但现在的项目组B则是需要前端手动去配置proxy。最终生产环境都是不设置跨域头,都在 Nginx 中配置反代。其实一般来说在搭建基础环境的时候,都会把这些东西配置好,因为不管如何都会有提前配置好几套环境变量,配置 devServer 的同时,加上 proxy 只是顺手而已。其实你也可以直接在浏览器中配置关闭跨域限制,这样的未来所有的跨域限制不会出现了,但是生产、测试环境依旧是需要处理的。
我觉得开发环境开不开无所谓,毕竟前端开发环境通常也要用开发服务器,代理只是很简单一行代码搞定的事情。生产环境通常和开发环境有很大差异,不是简单的一两行代码能控制的,甚至不是后端程序员控制的。所以跟最佳实践没关系,更多的是“不必要”,以及“未必有效”。但是我觉得题主怨气很大,这个不太应该。建议把心态放平和,不要有那么多情绪,本来是一件小事,非要上纲上线对你并没有好处。
开发环境可以允许跨域比如说
localhost
、127.0.0.1
,但是最终部署在生产环境时肯定会把这些允许跨域关闭,只允许指定的域名,或者直接使用Nginx
的反向代理。但这个事情,并不是说是“理直气壮”去要求的,而是要前后端运维商量着来。主要看你们项目组的习惯的,并没有一个业内公认规则/公俗说一定要怎么怎么样来做。
比如说我之前的项目组A就是默认测试环境允许
localhost
,上线后关闭。但现在的项目组B则是需要前端手动去配置proxy
。最终生产环境都是不设置跨域头,都在
Nginx
中配置反代。其实一般来说在搭建基础环境的时候,都会把这些东西配置好,因为不管如何都会有提前配置好几套环境变量,配置
devServer
的同时,加上proxy
只是顺手而已。其实你也可以直接在浏览器中配置关闭跨域限制,这样的未来所有的跨域限制不会出现了,但是生产、测试环境依旧是需要处理的。