1Panel 企业版证书激活无响应怎么办?

46 阅读

在 1Panel 中导入企业版许可证进行激活时,如果点击导入后没有反应,同时浏览器控制台出现以下报错,可以按本文处理:

Access to XMLHttpRequest ... has been blocked by CORS policy:
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.

这表示浏览器的 CORS 预检没有通过,后续的许可证激活请求可能尚未发出。

处理方法

1. 找到失败的 OPTIONS 请求

按 F12 打开浏览器开发者工具,切换到 Network(网络),然后重新导入许可证。

找到失败的 OPTIONS 请求,查看它的 Request URL、Status Code、Origin 和响应头。仅凭控制台报错无法确定是哪一层返回了错误,必须先确认请求地址。

2. 检查对应的代理或安全网关

如果 Request URL 经过自己管理的 Nginx、OpenResty、WAF 或其他网关,请确认:

  • OPTIONS 请求没有被拦截或重定向;
  • 预检响应返回 200 或 204;
  • 响应中包含与实际请求匹配的 CORS 响应头。

例如:

Access-Control-Allow-Origin: https://你的1Panel访问地址
Access-Control-Allow-Methods: POST, OPTIONS
Access-Control-Allow-Headers: Authorization, Content-Type

允许的方法和请求头应以 Network 中的 Access-Control-Request-Method、Access-Control-Request-Headers 为准。如果请求携带身份凭据,Access-Control-Allow-Origin 必须填写明确的来源地址,不能使用 *。

预检响应和后续实际请求的响应都需要返回匹配的 Access-Control-Allow-Origin。如果后端已经处理 CORS,不要在代理层重复添加。

3. 重新激活并验证

修改配置后重新导入许可证进行激活,并在 Network 中确认:

  • OPTIONS 请求已经成功;
  • 浏览器随后发出了实际的许可证激活请求。

如果失败的 Request URL 不由自己管理,不要修改无关的 Nginx 配置。请保存该请求的地址、状态码、请求头和响应头截图,然后提交官方技术支持。截图前请隐藏 Cookie、令牌和许可证内容。

关于 CORS 预检和响应头的定义,可参考 MDN CORS 指南。

排查顺序

F12 打开 Network → 重试激活 → 找到失败的 OPTIONS 请求 → 确认请求地址 → 检查对应的反向代理或安全网关 → 重新激活。