我正在尝试让 retina.js 在我们的网站上工作,其中作品集文章是通过 ajax 加载的。
所以 retina.js 似乎试图获取图像,但留下了典型的
XMLHttpRequest cannot load http://assets.url.com/images/logo6@2x.png. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://url.com' is therefore not allowed access.
我正在运行 Nginx,它有访问控制设置,但显然它也需要在 S3 上设置,而且它......像这样很好并且开放......
<?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>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我尝试过包括特定 URL 的变体,但仍然收到相同的错误消息。
有人知道这里可能出现什么错误,也许我们的设置根本没有设置请求 header ?也许我们的 ajax 网格干扰了 retina.js? retina.js 网站上没有提到设置上述代码后需要任何特殊配置。
如果有什么区别的话,我们也会使用 Cloudflare 作为 DNS,尽管目前一切都已关闭。
最佳答案
问题出在 retina.js 的工作方式上。感谢 github 上的这个替代版本,终于找到了解决方案。
https://github.com/chrishunt/retinajs/blob/master/src/retina.js
关于jquery - XMLHttpRequest 无法加载 请求的资源上不存在 'Access-Control-Allow-Origin' header 。 AWS S3、Retina.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289709/