设置javascript图像与S3 CORS很少工作
Setting javascript Image with S3 CORS seldom working
我正在尝试使用canvas元素来保存一些图像。我注意到我在chrome中有问题,并将问题隔离到设置初始图像。
<a href="#" data-src="https://s3.amazonaws.com/imphotos/uploads/thumb_IM_17592186048618_17592186048643.jpg">ONE</a>
<a href="#" data-src="https://s3.amazonaws.com/imphotos/uploads/thumb_IM_17592186047657_17592186047769.jpg">TWO</a>
<a href="#" data-src="https://s3.amazonaws.com/imphotos/uploads/thumb_IM_17592186047657_17592186047727.jpg">THREE</a>
var setImg = function(src){
var img = new Image;
img.crossOrigin = "Anonymous";
img.onload = function(){
alert("LOADED!");
}
img.onerror = function(){
alert("ERROR!");
}
img.src = src;
};
$(document).ready(function(){
$("a").click(function(e){
var src = $(e.currentTarget).data('src');
setImg(src);
});
});
我第一次这样做,它工作得很好,但由于CORS设置,每个后续请求构建第二个/第三个图像都失败了,但这里是我的CORS设置:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedHeader>*</AllowedHeader>
<AllowedMethod>GET</AllowedMethod>
</CORSRule>
在创建新图像的click处理程序之后,我得到错误:
来自origin 'https://s3.amazonaws.com'的图像被跨源资源共享策略阻止加载:请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:3000'。
但一开始没有,所以我很困惑。它在Firefox中也能运行。
编辑:经过更多的调试,我意识到第一个/随后的图像只是偶然的…这与装载的顺序无关。
我做了这个JS小提琴,只是我的S3桶中的一些图片正在使用这种方法,而其他的则不是。我是否需要将CORS设置追溯应用于桶中的图片?这是S3的bug吗?我的图像有问题吗?
如果你点击"TWO",你会看到一个警告,指示加载,1/3都出错,并在控制台中给出CORS消息。
https://jsfiddle.net/6L44ttus/编辑2:
读到这里,也许我需要把我的桶名放在前面(例如my-bucket)。S3而不是S3。我的天,我试过了,但没有用。现在所有的图像都不工作了:
https://jsfiddle.net/6L44ttus/3/我知道我的问题了…我从我的localhost http加载图像,并从https拉资产…
编辑*实际上这根本不是答案。
有一些假阳性。我最终设置了一个具有正确标头的nginx代理。
相关文章:
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- 无法在 jquery 中获取 Ajax CORS 请求以工作
- CORS 请求与 Safari 一起工作
- 如何使工作 Chrome 扩展程序的未捕获异常处理程序(由于 CORS 保护而不起作用)
- CORS在Angular中不工作
- 无法使CORS与Slim API一起工作
- parse.com Javascript CORS更新用户名时出错(在解析端工作)
- HTML5 Web工作者是否可以/应该使用CORS进行跨域工作
- CORS与XMLHttpRequest不工作
- CORS重定向工作异常
- CORS标头在MEAN堆栈应用程序中不工作
- Angular + CORS -不工作在Chrome /如何修复和调试
- CDN Instagram照片/视频的脏画布.CORS不工作
- CORS调用在PHP中工作,但不能在javascript/jquery中工作
- 为什么经过验证的CORS请求的preflight OPTIONS请求在Chrome中工作,而在Firefox中不起作用?
- 设置javascript图像与S3 CORS很少工作
- CORS问题在顶点应用程序不工作
- 可以't设法使CORS请求工作
- 让 CORS 与 JQuery 客户端、节点/快速服务器一起工作时出现问题
- Ajax.请求在IE8/9中不能与CORS一起工作,静默失败