在使用本地部署的 Ollama 作为 OpenAI API 兼容服务时,如果遇到插件调用被拒绝的问题,通常表现为收到 403 Forbidden 错误。
以下是该问题的成因分析及完整的解决方案:
问题现象与原因分析
当通过浏览器扩展(Chrome Plugin)发起请求时,如果返回如下内容:
HTTP/1.1 403 Forbidden
Content-Length: 0
这通常意味着服务器拒绝了跨域访问。请留意请求头中的 Origin 信息:
Origin: chrome-extension://pjniaipnjcdiiglednmhgmjmpmllelke
Host: 127.0.0.1:11434
这表明请求并非来自普通的网页或命令行,而是源自浏览器插件。
此时检查 Ollama 的启动参数,会发现关键的环境变量 OLLAMA_ORIGINS 限制了允许的访问来源。如果该值未设置为允许所有地址(如 "*"),或者被预设为仅允许本地特定端口/源,浏览器插件的请求就会被拦截。简单理解:Ollama 默认为了安全不会无条件信任所有来自扩展程序的请求,必须手动放行。
解决方案步骤
要彻底解决此问题并让插件能正常调用 API,请按以下顺序操作:
1. 停止 Ollama 服务
首先需要在菜单栏中选择退出客户端(Ollama → Quit Ollama),或者通过终端强制终止进程,以确保新的环境变量配置能立即生效。
killall Ollama
2. 设置允许所有来源的环境变量
在 macOS 系统中,我们需要将 OLLAMA_ORIGINS 设置为通配符 "*",从而开放全部权限给任何发起请求的来源(包括浏览器插件)。
launchctl setenv OLLAMA_ORIGINS "*"
注:执行后可以通过以下命令验证状态是否设置成功。返回结果为
*即表示配置生效。
launchctl getenv OLLAMA_ORIGINS
# 预期输出:*
3. 重启服务
环境修改完成后,重新打开应用程序使新配置加载。
open -a Ollama
验证结果
完成上述步骤后,再次通过浏览器扩展发起请求。如果此时不再返回 403 Forbidden,且能正常获取响应数据(不再是空的 JSON),则说明问题已解决,插件已成功连接到本地 Ollama API。
在使用本地部署的 Ollama 作为 OpenAI API 兼容服务时,如果遇到插件调用被拒绝的问题,通常表现为收到 403 Forbidden 错误。
以下是该问题的成因分析及完整的解决方案:
问题现象与原因分析
当通过浏览器扩展(Chrome Plugin)发起请求时,如果返回如下内容:
HTTP/1.1 403 Forbidden
Content-Length: 0
这通常意味着服务器拒绝了跨域访问。请留意请求头中的 Origin 信息:
Origin: chrome-extension://pjniaipnjcdiiglednmhgmjmpmllelke
Host: 127.0.0.1:11434
这表明请求并非来自普通的网页或命令行,而是源自浏览器插件。
此时检查 Ollama 的启动参数,会发现关键的环境变量 OLLAMA_ORIGINS 限制了允许的访问来源。如果该值未设置为允许所有地址(如 "*"),或者被预设为仅允许本地特定端口/源,浏览器插件的请求就会被拦截。简单理解:Ollama 默认为了安全不会无条件信任所有来自扩展程序的请求,必须手动放行。
解决方案步骤
要彻底解决此问题并让插件能正常调用 API,请按以下顺序操作:
1. 停止 Ollama 服务
首先需要在菜单栏中选择退出客户端(Ollama → Quit Ollama),或者通过终端强制终止进程,以确保新的环境变量配置能立即生效。
killall Ollama
2. 设置允许所有来源的环境变量
在 macOS 系统中,我们需要将 OLLAMA_ORIGINS 设置为通配符 "*",从而开放全部权限给任何发起请求的来源(包括浏览器插件)。
launchctl setenv OLLAMA_ORIGINS "*"
注:执行后可以通过以下命令验证状态是否设置成功。返回结果为
*即表示配置生效。
launchctl getenv OLLAMA_ORIGINS
# 预期输出:*
3. 重启服务
环境修改完成后,重新打开应用程序使新配置加载。
open -a Ollama
验证结果
完成上述步骤后,再次通过浏览器扩展发起请求。如果此时不再返回 403 Forbidden,且能正常获取响应数据(不再是空的 JSON),则说明问题已解决,插件已成功连接到本地 Ollama API。