惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
J
Java Code Geeks
博客园 - 聂微东
B
Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
腾讯CDC
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
美团技术团队
博客园 - Franky
Google DeepMind News
Google DeepMind News
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
The Cloudflare Blog

博客园 - tying

fastadmin mongodb 处理及使用 mysql的知识扩展 <论语> 一个小并发,引起的数据错误 小型在线聊天功能 fastadmin数据库操作 技术文章分享 shopxo学习过程 fastadmin 開發好文章 fastadmin常用前端组件 2024-11-13关于监管特殊停牌炒作股票事件--兼此事件复盘 深入浅出的讲解mysql优化 关于gruop by,where和order by ,以及一些mysql的探讨 fastadmin使用感受 fastadmin命令行模式--command mac 下Fastadmin 框架搭建 Mac电脑php环境搭建 关于php+mysql性能在实际工作中的应用实例 yii2的单元测试 d8的入口文件及引申
fastadmin配合宝塔面板造成cors error 跨域问题
tying · 2025-11-04 · via 博客园 - tying

最近写外包程序,需要给用户远程提供研发测试环境,为了方便维护研发环境,使用了宝塔面板进行搭建

该项目是一个unapp+fastadmin 开发的app,以及后台管理。

然后发现了一个坑。

众所周知app和前后端分离的站都会涉及跨域访问问题

在fastadmin中,在config.php文件中有配置跨域访问的参数,并且校验方法在common.php文件中有访问方法。下图

image

 在app端,我进行了一些配置,没有发现任何问题,可以正常访问接口。但是在给h5端导出的服务器上,则无法获取接口数据,报cors error 

那么说明代码层的跨域检测没有起作用,也就是说请求在服务器层就被拦截了。(验证----在index.php页面的第一行代码进行断点输出)

我搜了下宝塔的相关配置,发现确实有有相关文章,并进行了配置。

image

依然报cors error 

此时我再次进行断点,发现此时变成了代码层的拦截。最后在此处找到了原因,如图,我将这行有问题的代码进行了注释,就变得正常了。

image

 好了,这个坑填上了。

在新版本的宝塔中,更新了cros的管理,这个在之前是没有的,而对于fastadmin来说本身就含有对cros的管理。这两个管理冲突了,两人都在返回头中添加了Access-Control-Allow-Origin。又去找了宝塔的以前版本,发现之前确实这一块确实是新做的。

那么新的问题又来了,为什么前端在本地开发的时候或者打包成app在手机端使用接口的时候没有报错呢?

我仔细比较了一下请求,发下大概是这里的原因

image

 在xbuilder中,Origin 访问源为localhost,骗过了线上的服务器,认为其是服务器的本地访问。我想在app中也是如此。app不会使用线上js文件请求数据,而是存储到了用户手机的app中。和xbuilder开发骗过服务器是一样的。

但是如果将前端的代码放到单独的服务器时,浏览器请求使用的Origin是前端服务器绑定域名。因此造成了cors 跨域。