You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Streamlit XsrfProtection解决Heroku部署CORS覆盖报错

禁用Streamlit XSRF保护的配置方法

你遇到的配置覆盖问题是Streamlit的默认规则导致的:当server.enableCORS=false但server.enableXsrfProtection保持默认true时,二者逻辑冲突,系统会强制将enableCORS重置为true,只需要在配置中显式关闭XSRF保护即可解决。

方法1:修改setup.sh配置(推荐)

直接在你现有的~/.streamlit/config.toml生成逻辑里,加上enableXsrfProtection=false的配置项,修改后的完整setup.sh内容如下:

mkdir -p ~/.streamlit/
echo "\
[server]\n\
port=$PORT\n\
enableCORS=false\n\
enableXsrfProtection=false\n\
headless=true\n\
\n\
" > ~/.streamlit/config.toml

方法2:启动命令传参(无需修改setup.sh)

如果你不想改动setup.sh,也可以直接在Procfile的启动命令中追加参数,在启动时直接指定配置:

web: sh setup.sh && streamlit run app.py --server.enableCORS=false --server.enableXsrfProtection=false

修改完成后重新提交代码推送到Heroku触发重新部署即可,部署后日志里的配置覆盖警告会消失,对应的H14应用错误也会随之解决。

注意:关闭XSRF保护意味着应用不再自带跨站请求伪造防护,如果你部署的是面向公网的生产应用,建议后续自行补充对应的安全校验逻辑。

内容的提问来源于stack exchange,提问作者Sneha Kumari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:15:58