2013-02-11 20 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驗證。

相關問題