前端请求报跨域错误?3种解决方法,新手看完就懂

刚刚阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值3465
  • 级别管理员
  • 主题693
  • 回复0
楼主

很多新手做前后端分离,前端页面是localhost:3000,后端接口是localhost:8000,浏览器控制台报"跨域错误",接口请求发不出去,今天说一下这个问题的基础解决办法。

为什么会跨域

浏览器的安全策略,不同域名、不同端口、不同协议,前端不能直接请求对方的接口,这是为了安全,不是你代码写错了。

最简单的解决方法:后端开CORS

后端接口那边,加一行响应头,允许前端的域名访问,比如FastAPI加个中间件,允许所有来源开发用,生产环境就把前端域名加进去。改完重启后端,跨域就通了,不用改前端代码。

开发阶段临时解决

前端开发工具里配个代理,把请求转发到后端,浏览器看到的请求都是同一个域名,就不会跨域了,Vue、Vite、React都自带这个代理配置,改一行配置就行。

注意事项

生产环境别直接允许所有域名跨域,把允许的来源改成你自己的前端域名,不然别人的网站也能调用你的接口,有安全风险。

跨域是前端开发最常见的入门坑,知道了原理,解决起来很简单,别一看到红错误就慌。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/160.html

0
回帖

前端请求报跨域错误?3种解决方法,新手看完就懂 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息