2013-02-11 48 views
2

我有一个Heroku应用程序通过JQuery向我的cloudfront发布AJAX请求。当我从myapp.herokuapp.com加载我的网站时,一切正常。Cloudfront拒绝来自一个域的CORS,但没有其他

当我访问从我的自定义域名的应用程序(这有点像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> 

为什么会出现这种情况?有任何想法吗?

回答

4

你可能会得到这个S3/CloudFront的错误https://forums.aws.amazon.com/thread.jspa?messageID=377513

当S3看到请求myapp.herokuapp.com进来咬伤,它重写Access-Control-Allow-Origin: myapp.herokuapp.com,而不是*你指望它。 CF缓存。因此,即使使用相同的CF分发,来自不同域的二级请求也会失败CORS验证。

相关问题