首页  >  文章  >  web前端  >  尽管我已允许“https://example.com/”,为什么来自源“https://example.com”的访问仍被阻止?

尽管我已允许“https://example.com/”,为什么来自源“https://example.com”的访问仍被阻止?

Linda Hamilton
Linda Hamilton原创
2024-11-01 13:26:02535浏览

Why is Access from Origin 'https://example.com' Blocked Even Though I've Allowed 'https://example.com/'?

尽管我允许“https://example.com/”,但来自源“https://example.com”的访问已被阻止 h2>

在尝试跨域访问资源时,开发人员经常会遇到与 Access-Control-Allow-Origin header 相关的问题。解决这些问题的关键在于理解 CORS 协议中“起源”的准确含义。

CORS 中起源的概念

在 CORS 中,源是方案、主机(域)和端口的组合。重要的是,它不包含路径。因此,以下两个来源被认为是不同的:

  • https://example.com
  • https://example.com/path/to/resource

问题:起源中的尾部斜杠

这种特殊情况下的问题源于对起源定义的误解。具体来说,根据 CORS 协议规范,不允许在允许的来源中使用尾部斜杠。因此,浏览器发送的源标头(不带尾部斜杠)与服务器上配置的允许源不匹配。

解决方案:从允许的源中删除尾部斜杠

要解决此问题,只需从 CORS 配置中允许的原始值中删除尾部斜杠即可。在这种情况下,正确的允许来源将是:

  • https://googledocs-clone-sbayrak.netlify.app

通过此修改,浏览器的原始标头将匹配允许的来源,并且 CORS 将成功允许。

以上是尽管我已允许“https://example.com/”,为什么来自源“https://example.com”的访问仍被阻止?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn