亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未捕獲的 DOMException:無法在“HTMLCanvasElement”

未捕獲的 DOMException:無法在“HTMLCanvasElement”

30秒到達戰場 2021-12-02 14:36:15
看起來這個問題主要與我的 aws s3 存儲桶 CORS 配置有關我補充說:<?xml version="1.0" encoding="UTF-8"?><CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule>    <AllowedOrigin>https://www.example.com</AllowedOrigin>    <AllowedMethod>PUT</AllowedMethod>    <AllowedMethod>POST</AllowedMethod>    <AllowedMethod>DELETE</AllowedMethod>    <AllowedMethod>GET</AllowedMethod>    <AllowedMethod>HEAD</AllowedMethod>    <AllowedHeader>*</AllowedHeader></CORSRule></CORSConfiguration>到我的存儲桶 CORS 配置,但這也無濟于事。出于某種原因,我可以將照片添加到畫布(取決于代碼)但無法使用來自 AWS 的圖像保存畫布我有一個 fabric.js 畫布,它被亞馬遜 s3 的圖像污染了。我不確定到底發生了什么。當我嘗試通過單擊保存來保存畫布時:控制臺上的 Chrome 錯誤:未捕獲的 DOMException:無法在“HTMLCanvasElement”上執行“toDataURL”:可能無法導出受污染的畫布??刂婆_上的 FireFox 錯誤:操作不安全https://jsfiddle.net/je3mL5go/1/在 jsfiddle 中,它在添加的行}, {crossOrigin: 'Anonymous'});存在時起作用。在 Heroku 上使用 s3 圖像進行生產:在 FireFox 中,我可以從選擇菜單中選擇一個圖像并將其添加到畫布中。我會得到前面提到的錯誤,但如果我反復單擊“保存”按鈕,在點擊次數足夠多(通常是 5-30 次)后,我可以將畫布另存為 png。在 Chrome 中,這種“hack”似乎根本不起作用。這背后有解釋嗎?似乎因為我在 AWS S3 中托管圖像,這也會影響它。但即使這樣,上面的例子(在 FireFox 中重復點擊)仍然有效。嘗試:和:function updateTshirtImage(imageURL){  fabric.Image.fromURL(imageURL, function(img) {    img.scaleToHeight(300);    img.scaleToWidth(300);    img.crossOrigin = 'anonymous';    canvas.centerObject(img);    canvas.add(img);    canvas.renderAll();  });};我可以上傳圖片,但是當我點擊保存時:我得到與上面相同的錯誤。當我使用:function updateTshirtImage(imageURL){  fabric.Image.fromURL(imageURL, function(img) {     img.scaleToHeight(300);     img.scaleToWidth(300);     canvas.centerObject(img);     canvas.add(img);     canvas.renderAll();  }, {crossOrigin: 'anonymous'});};選擇圖片上傳時出錯No 'Access-Control-Origin-Header' is present...試圖:function updateTshirtImage(imageURL){   var rand = '?'+Math.random();   var no_cors = new Image();   no_cors.onload = loadCORS;   no_cors.src = imageURL + rand;錯誤:Chrome:404 錯誤Firefox:沒有錯誤,不工作。這里的問題是我在從 aws 請求之前以某種方式更改了 aws s3 的 url?
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

添加:


<?xml version="1.0" encoding="UTF-8"?>

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">

<CORSRule>

    <AllowedOrigin>https://www.example.com</AllowedOrigin>

    <AllowedMethod>PUT</AllowedMethod>

    <AllowedMethod>POST</AllowedMethod>

    <AllowedMethod>DELETE</AllowedMethod>

    <AllowedMethod>GET</AllowedMethod>

    <AllowedMethod>HEAD</AllowedMethod>

    <AllowedHeader>*</AllowedHeader>

</CORSRule>

</CORSConfiguration>

實際上做到了??雌饋砦抑恍枰却?。第二天我測試了,它奏效了!


澄清一下,上面的頭代碼可能有點矯枉過正,但這是我目前所處的位置。我將測試和“調試”并刪除一些允許的方法,看看哪些和哪些不需要。


查看完整回答
反對 回復 2021-12-02
  • 1 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號