- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 Meteor 与 React 结合使用,react-image-crop ,我通过 S3 和 Cloudfront 托管的图像 src,部署在 Heroku 上。为了在 Safari 和 Firefox 上实现 canvas.toBlob()
功能,我添加了 Javascript-Canvas-To-Blob .
在裁剪图像时,我从 Safari 和 Firefox 收到安全错误:
SecurityError: The operation is insecure.
SecurityError (DOM Exception 18): The operation is insecure.
将我指向 canvas.toDataURL()
。
我对自己的理解非常不自信,但可以这样说吗,问题是由于客户端(我的浏览器)和 S3 服务器之间的直接连接造成的,它们具有不同的域,因此违反了 same domain policy ?
所以我通过以下方式在我的客户端(浏览器)域中加载图像
let img = new Image();
img.onload = function() {
console.log(img.src);
}
img.src = S3DomainUrl;
现在我创建了一个 Canvas ,在 Canvas 上绘制“裁剪”图像并将其转换为 blob:
var canvas = document.createElement('canvas');
... (cropSizes)
var ctx = canvas.getContext('2d');
ctx.drawImage(loadedImage, pixelCrop.x, pixelCrop.y, pixelCrop.width, pixelCrop.height, 0, 0, pixelCrop.width, pixelCrop.height);
canvas.toBlob(function(blob) {
console.log(URL.createObjectURL(blob));
});
问题一定出在这里。在 Safari/Firefox 中 Javascript-Canvas-To-Blob使用 canvas.toDataURL()
,这似乎是不允许的,因为它是从 S3 域上的客户端域执行的?
因此 Javascript 向 S3 发送了一个请求图像的 HTTP 请求。 S3 使用仍然属于 S3 域的 img 进行应答。现在我的客户端无法执行 canvas.toDataURL()
操作,因为它作用于来自 S3 域的 img?
最后,如何正确设置 S3 的 CORS 和我的 Meteor 客户端以相互通信?
最佳答案
要将 CORS 配置添加到您的 S3 存储桶: S3 - Access-Control-Allow-Origin Header
要在您的代码中使用 CORS 图像,请添加以下行:img.crossOrigin = "Anonymous";
像这样的地方:
let img = new Image();
img.crossOrigin = "Anonymous";
img.onload = function() {
console.log(img.src);
}
img.src = S3DomainUrl;
更多信息见:
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
关于javascript - CORS : How to solve security Issue with Safari and Firefox while using AWS S3 and canvas. 到数据网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42466865/
我正在使用 spyder - python。我想测试我的代码。我已关注 pip install spyder-unittest和 pip install pytest .我已经重新启动了内核并重新启动
我编写了一个简单的代码来匹配和选择/丢弃两个文件中的元素。此代码适用于包含 Id 对的 $file_in: Id1 Id2 Id1 Id3 Id1 Id4 Id3 Id4 Id3 Id5 Id3 Id
问题陈述:当 for 循环第二次执行时,我收到 Stale Element Exception。 描述: 我正在使用 for 循环来处理表元素。在第一次迭代中,它将在页面上搜索所需的元素。如果该元素在
我编写了一个简单的代码来匹配和选择/丢弃两个文件中的元素。此代码适用于包含 Id 对的 $file_in: Id1 Id2 Id1 Id3 Id1 Id4 Id3 Id4 Id3 Id5 Id3 Id
我正在尝试用 Java 创建康威的生命游戏,但似乎遇到了障碍。我创建了一个名为“Cell”的类,它包含一个 boolean 变量,该变量本质上确定细胞是活的还是死的,以及在需要时杀死或创建细胞的方法。
我有一张 table userid points expires我只想对所有匹配特定 userid 的点求和和 CURTIME() < expires . 所以我做到了: select *, su
题目地址:https://leetcode.com/problems/solve-the-equation/description/ 题目描述: Solve a given equation an
自从工作流构建问世以来,我一直在使用 TFS 构建。我从未见过使用以下任何一项的需要或愿望: Copy Build output to the server 什么服务器?什么目录? `将构建输出复制到
我有这个矩阵 a = {{2, -2, -4}, {-2, 5, -2}, {-4, -2, 2}} 然后我解出了一个缺少一项的方程。方程的形式为逆[p].a.p == q其中 p 是缺少条目 (x5
下面的代码解决了 hanoi 使用预定义函数 moveLOD、swapLOI 和 swapLID 返回 Action 列表的问题。 MoveLOD:将 1 个圆盘从第一个位置移动到三元组第三个位置中的
基本上,我通过从文本文件中读取一组整数来实现 AVL 树,然后使用 add() 方法填充树。另外,程序应该按顺序打印整数集。 当我运行该程序时,会弹出 StackOverflowError。我认为这个
我在 html 中有一个 span 标签,这个 可以在页面上多次出现。 我只想选择第一个跨度标签。我就是这样做的 var $myvar= $(".mydiv .indiv .myspan:first"
来自 sympy solve() 的解决方案是否以某种方式排序?它是从最小到最大的解决方案吗? 如何强制解决方案的非负性? 在我的问题中,我需要独特的最小正解决方案。我感谢所有的帮助 最佳答案 它们不
我正在尝试打开一个文件,但我收到了: 该进程无法访问该文件,因为它正被另一个进程使用。该文件是一个 XML 文档。谁能帮忙? string activeDirectory = @"X:\SubGr
如何解决此内存泄漏...我什至在最后释放它,如图片所示,但它仍然存在。在 if 语句几乎 10-15 条件下,它像给定的代码一样使用......但最后我发布了它。 LoginResponse *res
我为不同的日子编写了以下代餐代码,但我每天都吃同样的餐。我想隔天吃“肉”和“素食”食物。 my dataframe is as follows: id name
这会创建一个点列表,sympy solve() 方法应该返回 x 的值。相反,它返回另一个方程式,我不确定为什么。 ogrid() 和 ravel() 正在绘图中创建一个点列表,这是在 Matplot
只是好奇它是否使用高斯消去法或其他等效方法? 最佳答案 来自numpy docs : solve is a wrapper for the LAPACK routines dgesv and zges
首先, solve_poly_system( seq, *gens, **args), 有人确切知道solve_poly_system的参数是什么意思吗? 我有系统, rd = λk ua = λk
我正在尝试使用 sympy 的 solve 命令求解方程,但我的输出是一个空列表 [ ]。我认为这可能发生的唯一原因是没有解决方案,但我怀疑这就是原因。任何人都知道为什么我没有得到答案?谢谢! fro
我是一名优秀的程序员,十分优秀!