openclaw 接入 ollama 时需解决 cors 问题:必须通过 ollama_origins 环境变量显式配置允许源(如 http://localhost:3000),或使用 vite 代理绕过浏览器限制,且验证响应头含 access-control-allow-origin 等字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw 接入 Ollama 时浏览器控制台报错“CORS header ‘Access-Control-Allow-Origin’ missing”,说明前端请求被浏览器拦截,必须在 Ollama 服务端显式启用跨域支持才能让 OpenClaw 的 Web 前端正常调用本地模型接口。
确认 Ollama 是否运行在默认端口
执行 ollama serve 启动服务后,默认监听 http://127.0.0.1:11434。若已修改端口或使用自定义 host,请先通过 ps aux | grep ollama 或 lsof -i :11434 确认实际监听地址——【跨域配置只对 Ollama 实际监听的 HTTP 服务生效,不作用于 CLI 或 socket 通信】。
启用 Ollama 内置 CORS 支持(推荐)
从 Ollama v0.3.0 起,官方支持通过环境变量开启宽松跨域:
方法一:启动时指定环境变量(Linux/macOS)OLLAMA_ORIGINS="http://localhost:3000,http://127.0.0.1:5173" ollama serve
OpenClaw专家 — 用于任何OpenClaw问题或需求,包括配置错误、网关崩溃、网关未启动、斜杠指令、频道路由等。
方法二:Windows PowerShell 中运行$env:OLLAMA_ORIGINS="http://localhost:3000,https://my-openclaw-app.net"; ollama serve
注意:多个源用英文逗号分隔,不可加空格;【不能写 *,Ollama 不接受通配符 origin】;若 OpenClaw 前端部署在 HTTPS 站点,此处必须明确列出对应协议+域名。
手动代理绕过浏览器 CORS(适用于开发调试)
当无法修改 Ollama 启动参数(如使用系统服务、Docker 容器),可改由前端开发服务器接管请求:
第一步:在 Vite 项目根目录创建 vite.config.ts,添加 proxy 配置
第二步:将所有 /api/ollama/ 开头的请求代理到 http://127.0.0.1:11434
第三步:OpenClaw 前端代码中请求路径改为 /api/ollama/api/chat 而非 http://127.0.0.1:11434/api/chat
第四步:确保代理配置中设置 changeOrigin: true,否则 Host 头未重写会导致 Ollama 拒绝请求
验证跨域是否生效
打开浏览器开发者工具 → Network 标签页 → 发起一次 OpenClaw 对 Ollama 的 POST 请求 → 查看响应头中是否包含:Access-Control-Allow-Origin: http://localhost:3000Access-Control-Allow-Methods: POST, GET, OPTIONSAccess-Control-Allow-Headers: Content-Type
若三项均存在且值匹配你前端的实际来源,则跨域已正确处理。









