【问题标题】:Cloudfront denying CORS from one domain, but not the otherCloudfront 拒绝来自一个域的 CORS,但拒绝来自另一个域
【发布时间】:2013-01-26 16:33:57
【问题描述】:

我有一个 Heroku 应用程序通过 JQuery 向我的云端分发发出 AJAX 请求。当我从 myapp.herokuapp.com 加载我的网站时,一切正常。

当我从我的自定义域(类似于 myapp.subdomain.domain.com)访问应用程序时,我得到了:

XMLHttpRequest cannot load [cloudfront dist here]/something.json. Origin http://myapp.subdomain.domain.com is not allowed by Access-Control-Allow-Origin.

这很奇怪。在我的 S3 CORS 配置中,我允许使用 * 的所有域:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

为什么会发生这种情况?有什么想法吗?

【问题讨论】:

    标签: ajax cors amazon-cloudfront


    【解决方案1】:

    您可能被这个 S3/CloudFront 错误 https://forums.aws.amazon.com/thread.jspa?messageID=377513 咬住了

    当 S3 看到来自 myapp.herokuapp.com 的请求时,它会重写 Access-Control-Allow-Origin: myapp.herokuapp.com,而不是您期望的 *。 CF 会缓存它。因此,来自不同域的辅助请求将无法通过 CORS 验证,即使使用相同的 CF 分发也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-10
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 2021-09-03
      相关资源
      最近更新 更多