Laravel全局中间件无法绕过ngrok浏览器警告问题求助
问题原因及解决办法
为什么你的中间件不生效?
ngrok的浏览器警告页面是由ngrok的边缘服务器直接返回的,请求根本没到达你的Laravel应用,所以你在Laravel中间件里给请求添加ngrok-skip-browser-warning头的操作完全起不到作用——中间件只有在请求进入Laravel后才会执行,而警告页面在这之前就已经拦截了请求。
正确的解决方式
要跳过ngrok的浏览器警告,需要直接配置ngrok服务本身,而非在应用层处理,以下是几种可行方案:
方案1:启动ngrok时添加命令行参数
启动ngrok时直接携带跳过警告的参数,或者指定host-header重写:
# 直接跳过警告 ngrok http --ngrok-skip-browser-warning 8000 # 或通过host-header重写间接规避 ngrok http --host-header=rewrite 8000
方案2:修改ngrok配置文件
在本地ngrok配置文件(默认路径为~/.ngrok2/ngrok.yml)中添加如下配置:
ngrok_skip_browser_warning: true
保存后重启ngrok即可生效。
方案3:设置环境变量
启动ngrok前先设置对应的环境变量:
export NGROK_SKIP_BROWSER_WARNING=true ngrok http 8000
内容的提问来源于stack exchange,提问作者mending3
相关产品推荐
相关产品推荐

