【问题标题】:Why do wildcard CORS permissions not work in Chrome?为什么通配符 CORS 权限在 Chrome 中不起作用?
【发布时间】:2014-07-26 21:17:59
【问题描述】:

我正在使用loadGeoJson 尝试跨域加载数据。我知道我需要实施 CORS 以提供必要的许可。响应头需要包含以下声明:

Access-Control-Allow-Origin: *

我修改了 /etc/apache2 中的 apache2.conf 文件并添加了以下内容:

<ifModule mod_headers.c>
   Header set Access-Control-Allow-Origin: *
</ifModule>

当我在 Firefox 中加载包含跨域脚本的页面时,一切正常,我可以看到 Access-Control-Allow-Origin 已设置:

当我在 Chrome 中加载同一页面时出现问题,我继续收到以下错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。
因此不允许访问源“http://results.ptax.ca”。

同一页面如何在 Firefox 中完美运行,但在 Chrome 中抛出错误?有什么想法我可能做错了吗?

【问题讨论】:

  • 您能否提供一张 Chrome 中请求和响应标头的截图(类似于您在 JavaScript 中所做的)?另外,您能否使用 curl 重新创建 CORS 请求:stackoverflow.com/questions/12173990/…
  • 嗨@monsur,我正在使用 CodeIgniter,出于某种原因,我配置了一个基本站点 URL,尽管这样做是可选的。删除此特定配置设置后,我不再收到 Access-Control-Allow-Origin 的错误。
  • 很高兴知道这一点。我很好奇,设置 Base Site URL 的代码是什么样的?
  • CodeIgniter 中的设置在 /application/config/config.php 中,就是这样:`$config['base_url'] = 'mydomain.ca'`

标签: javascript ajax google-chrome cors


【解决方案1】:

Chrome 有时会拒绝通配符 CORS (*)。例如,如果您使用 withCredentials 选项,就会发生这种情况。

在您的 CORS 配置中设置实际域(包括协议和 [如果需要] 端口,如 https://example.com:8008)。

【讨论】:

    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 2021-09-02
    • 2013-11-06
    • 1970-01-01
    • 2015-10-12
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多