当前位置: 首页 > 知识库问答 >
问题:

javascript - 前端上线地址跨域?

季稳
2023-09-19

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

共有4个答案

祖浩淼
2023-09-19

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

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

庾鸿飞
2023-09-19

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

古明煦
2023-09-19

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

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

孟沛
2023-09-19

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

 类似资料:
  • 就是用户打开页面后端,可以直接获取本机的ip地址吗?

  • 使用window.open(),想要隐藏新开窗口地址栏 但是谷歌浏览器中不支持地址栏隐藏,location=no无效,且不能使用全屏 如何隐藏地址栏,还有其他方法吗

  • 需求是当本地程序请求一个IP地址的时候,映射到另一个ip地址上去。 和DNS不同的是,这里没有解析域名,因此修改hosts不行。 有没有办法或者工具可以做到?

  • 45 min 第二天收到感谢信,已挂 原型及原型链 闭包 Promise 宏任务微任务 React 生命周期 useEffect 的作用 浏览器渲染流程 DOM 解析过程遇到 script 标签会发生什么 Webpack 的作用 forEach、filter、map 的区别 跨域以及跨域的解决方案 Typescript 接触过吗 手写深拷贝 手写冒泡排序#地平线##秋招##前端#

  • 全程30分钟, 很像KPI面,无项目,无自我介绍,无摄像头 先来10min手写,之后全是八股 手写: 1.作用域题目,写输出 2.对象解构,写输出 3.手写delay 八股: 1.深拷贝浅拷贝,深拷贝的实现方式 2.为什么有async和await 3.webpack打包文件名为什么生成hash 4.受控组件和非受控组件的区别 5.高阶组件 6.usememo和react.memo的区别 7.use

  • 八股盛宴 1. js数据类型,symble是什么意思,用途? 2. let和const区别,const是数组,可以添加往数组里添加数据吗 3. promise是什么?状态之间可以转移吗? 4. all和race的区别? 5. promise和settimeout的区别(第一次见这样问的。。。) 6. es6之后操作数据的方法 7. webpack怎么配置代理 8. 箭头函数和普通函数的区别 9.