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

添加Access-Control-Allow-Origin后仍遇CORS跨域请求阻塞问题求助

解决CORS Header缺失问题的排查步骤

我来帮你排查这个CORS问题——虽然你已经在getlocker.php里添加了header('Access-Control-Allow-Origin: *');,但还是有几个常见的坑可能导致这个错误,咱们一步步来:

1. 确认CORS Header真的被发送了

首先要排除“代码写了但没生效”的情况:

  • 打开浏览器开发者工具,切换到Network标签,找到那个请求getlocker.php的条目,查看它的Response Headers,确认是否存在Access-Control-Allow-Origin: *。
  • 如果没看到这个Header,大概率是PHP代码在输出Header之前有内容输出(比如文件开头的空格、BOM字符,或者提前执行了echo/print),导致Header无法被正确发送。可以在getlocker.php最顶部加上缓冲输出的代码,确保Header是第一个输出的内容:
    <?php
    ob_start(); // 开启输出缓冲
    header('Access-Control-Allow-Origin: *');
    // 你的其他PHP代码...
    ob_end_flush(); // 输出缓冲内容
    ?>
    
  • 另外,检查是否存在Header冲突:如果同时设置了Access-Control-Allow-Credentials: true和Access-Control-Allow-Origin: *,浏览器会拒绝这个响应(因为带凭证的请求不允许用*作为来源)。如果你的请求不需要带凭证,确保没有设置这个Header。

2. 检查Plesk服务器的额外配置

Plesk的Apache/nginx可能会覆盖PHP设置的Header:

  • 登录Plesk面板,进入域名 > 网站与域名 > 你的域名 > Apache & nginx 设置,查看是否添加了自定义的CORS Header规则(比如Apache的Header set指令,或者nginx的add_header指令)。如果服务器层面已经设置了Access-Control-Allow-Origin,可能会和PHP里的设置冲突,或者限制了来源。
  • 可以尝试暂时移除服务器层面的CORS配置,只保留PHP里的设置,再测试。

3. 处理OPTIONS预检请求

浏览器在某些情况下会先发一个OPTIONS预检请求,确认服务器允许跨域请求。如果你的服务器没处理OPTIONS请求,也会报错:

  • 在getlocker.php开头添加OPTIONS请求的处理逻辑:
    if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
        header('Access-Control-Allow-Origin: *');
        header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
        header('Access-Control-Allow-Headers: Content-Type');
        exit;
    }
    
  • 即使你的请求是GET,如果带有自定义参数或Header,浏览器也可能触发预检,所以处理OPTIONS请求很有必要。

4. 清除缓存

缓存可能会导致旧的响应被复用:

  • 强制刷新浏览器页面(Ctrl+Shift+R),或者在开发者工具的Network标签勾选禁用缓存,重新测试请求。
  • 清空Plesk的服务器缓存(比如OPcache、页面缓存),或者重启Apache/nginx服务,确保新的配置生效。

5. 检查PHP代码是否有错误

如果getlocker.php本身存在PHP错误,可能会导致Header无法发送:

  • 在代码开头开启错误提示,排查潜在问题:
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
  • 确认check_input函数存在且能正常返回值,避免因为函数报错导致页面提前输出内容,打断Header的发送。

内容的提问来源于stack exchange,提问作者Chiriac Ion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:53:44