成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > 詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了

詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了

熱門標(biāo)簽:南昌仁和怎么申請(qǐng)開通400電話 平?jīng)龅貓D標(biāo)注位置怎么弄 只辦理400電話 機(jī)器人外呼系統(tǒng)存在哪些能力 如何獲取地圖標(biāo)注客戶 電話機(jī)器人黑斑馬免費(fèi) 高德地圖標(biāo)注地點(diǎn)糾錯(cuò) 拓展地圖標(biāo)注 電話機(jī)器人電銷系統(tǒng)掙話費(fèi)

報(bào)錯(cuò)詳盡信息

Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

關(guān)鍵詞

  • canvas.toDataURL()
  • crossOrigin
  • Access-Control-Allow-Origin

前言

最近在做一個(gè)創(chuàng)意類的圖片合成工具,大概齊就是通過拼接自定義的文字和圖片信息生成一張商品圖片類似的功能,項(xiàng)目中用到了fabric.js這個(gè)畫板庫,最后一步在保存圖片的時(shí)候報(bào)上面的一長串錯(cuò)誤,墻內(nèi)墻外搜了一遍,給出的解決方案都不全面,為避免同學(xué)們?cè)俅尾瓤樱谑怯辛舜宋?/p>

正文

我們?cè)赾onvertDOM2Image時(shí),如果DOM內(nèi)存在圖片資源,該資源所在的web-server是不支持跨域的,保存圖片是不會(huì)成功的。

因此在排查問題時(shí),首先要確定

  • web-server是否允許跨域,我們以nginx為例,response-header內(nèi)要存在Access-Control-Allow-Orgin:xxxx(可以是*,安全性要求比較高的可以根據(jù)主域名自定義)
  • 如果是img標(biāo)簽, 是否添加了crossorigin="anonymous", 如果是Image對(duì)象,同樣是否添加了改屬性obj.crossOrigin='anonymous'
  • 如果還不行,這里先不把答案放出來,我們先看看栗子

在接下來的栗子中我們會(huì)用到將Image轉(zhuǎn)換為canvas對(duì)象的方法

function convertImageToCanvas(image) {
// 創(chuàng)建canvas DOM元素,并設(shè)置其寬高和圖片一樣 
let canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext("2d").drawImage(image, 0, 0);
// 我們?cè)趯?shí)際的開發(fā)中,需要將抓換后的base64圖片編碼傳輸?shù)胶笈_(tái)圖片服務(wù)器,由server直接存儲(chǔ)或者生成一張圖片;
// 所以會(huì)用到 toDataURL
console.log(canvas.toDataURL('image/jpeg'))
return canvas;
}

栗子1

本地未設(shè)置跨域允許選項(xiàng)crossorigin=anonymous,web-server未設(shè)置跨域允許選項(xiàng)

<div id="d1">
<img style="width: 300px;height: 240px;" src="http://jb51.net/images/cover_thumbnail_3rd.jpg" alt="">
<p>本地未設(shè)置跨域允許選項(xiàng)crossorigin=anonymous,web-server未設(shè)置跨域允許選項(xiàng)</p>
</div>
<button onclick="setCanvas('d1')">canvas保存</button>
function setCanvas(DOMID) {
let img = document.getElementById(DOMID).querySelector('img')
document.body.appendChild(convertImageToCanvas(img))
}

很顯然,報(bào)錯(cuò)

栗子2

本地標(biāo)簽內(nèi)設(shè)置跨域允許選項(xiàng), web-server未設(shè)置跨域允許選項(xiàng)

這次連圖片都出不來,直接報(bào)錯(cuò)

這個(gè)好理解,瀏覽器同源策略限制嘛

Access to image at 'xxxx' (redirected from 'xxxx') from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

栗子3

本地未設(shè)置跨域允許選項(xiàng)crossorigin=anonymous, web-server設(shè)置跨域允許選項(xiàng)

報(bào)錯(cuò),妥妥的。

栗子4

本地標(biāo)簽內(nèi)設(shè)置跨域允許選項(xiàng)crossorigin=anonymous, web-server設(shè)置跨域允許選項(xiàng)

<div id="d4">
<img style="width: 300px;height: 240px;" src="https://img.alicdn.com/tfs/TB1_uT8a5ERMeJjSspiXXbZLFXa-143-59.png" alt="" crossorigin="anonymous">
<p>本地設(shè)置跨域允許選項(xiàng)`crossorigin=anonymous`,`web-server`設(shè)置跨域允許選項(xiàng)</p>
</div>
<button onclick="setCanvas('d4')">canvas保存</button>

居然可以了,但是~如果在代碼內(nèi)設(shè)置跨域呢?

栗子5

function setCanvas(DOMID) {
let img = document.getElementById(DOMID).querySelector('img')

img.crossOrigin= 'anonymous'

document.body.appendChild(convertImageToCanvas(img))
}

報(bào)錯(cuò)

我看官方文檔的意思是必須同步設(shè)置crossOrigin=anonymous,該圖片憑證才會(huì)被信任

This means that CORS is enabled and credentials are sent if the image is fetched from the same origin from which the document was loaded.

否則緩存的圖像數(shù)據(jù)仍然會(huì)被畫布視為有污染的跨源內(nèi)容.

怎么辦?重新取一遍圖片唄,加個(gè)隨機(jī)數(shù),圖片還是那個(gè)圖片,不過加了個(gè)馬甲,瀏覽器就不認(rèn)識(shí)了

栗子6

function setCanvas(DOMID) {
let img = document.getElementById(DOMID).querySelector('img')

img.src =img.src+'?v='+Math.random()
img.crossOrigin= 'anonymous'

img.onload=()=>{
document.body.appendChild(convertImageToCanvas(img))
}
}

binggo, 完美解決

所以我們?cè)陂_發(fā)過程中,新建圖片,更換圖片,還原圖片等功能代碼內(nèi),最好每一次都加個(gè)隨機(jī)數(shù),以保證源都是最新的,不走緩存

多說一點(diǎn)吧,關(guān)于fabric.js的相關(guān)跨域配置見下方

let _fabricConfig = {
// ....
crossOrigin:'anonymous'
};
/* fabric對(duì)象 */
let _fabricObj = new fabric.Canvas(id, _fabricConfig);


// 新建圖片對(duì)象時(shí)
let imgInstance = new fabric.Image.fromURL(url + '?v='+ Math.random(), img => {}, {crossOrigin: 'anonymous'})

// 動(dòng)態(tài)更新圖片時(shí)
let currentActive = _fabricInstance.getActiveObj();
currentActive.setSrc(randomURL, img =>{}, {crossOrigin: 'anonymous'})

github:http://github.com/phillyx

到此這篇關(guān)于詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了的文章就介紹到這了,更多相關(guān)canvas.toDataURL()報(bào)錯(cuò)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:池州 遼源 永州 新疆 漯河 棗莊 西藏 青島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了》,本文關(guān)鍵詞  詳解,canvas.toDataURL,報(bào),錯(cuò)的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解canvas.toDataURL()報(bào)錯(cuò)的解決方案全都在這了的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产成人在线影院| 日韩一级精品视频在线观看| 欧美优质美女网站| 少妇大叫太粗太大爽一区二区| 日韩电影网1区2区| 另类视频欧美| 精品中文字幕不卡在线视频| 精品一区二区三区免费播放| 精品久久久久久无| 一区二区三区中文在线| 亚洲成av人片一区二区梦乃| 欧美aaaxxxx做受视频| 天堂va欧美ⅴa亚洲va一国产| 国产精品国产自产拍在线| 精品欧美一区二区久久久| 亚洲狠狠婷婷综合久久久久图片| 久久久www免费人成精品| 国内精品视频在线播放| 国产一二三四五区| 久久久久久久人妻无码中文字幕爆| 国精产品一区一区三区免费视频| 久久精品国产秦先生| 韩国福利在线| 国产免费区一区二区三视频免费| 国产手机视频在线观看| 欧美老人xxxx18| 五月激情六月丁香| 欧美日韩国产在线观看| 韩国三级hd中文字幕| 亚洲一区二区中文在线| 国产精品国产三级欧美二区| 深夜福利视频一区| 五月婷婷综合激情| 精品人妻无码一区二区三区换脸| 国产一区二区精品久久91| 日本在线免费播放| 欧美狂野激情性xxxx在线观| 在线视频精品一| 亚洲欧洲av色图| 欧美v在线观看| 国产精品.com| 91九色视频在线| 二吊插入一穴一区二区| 91免费版视频| 日韩专区一区二区| 欧美成人国产精品高潮| 国产66精品久久久久999小说| 日韩久久免费电影| 日韩午夜精品视频| 91视视频在线观看入口直接观看www| 欧美中文在线观看| 免费在线亚洲| 日韩视频免费观看高清完整版| 日本一本久久| 在线观看三级网站| 高清国产一区| 美日韩精品视频| 国产精品久久久久久亚洲色| 狠狠色综合播放一区二区| 久久五月精品中文字幕| 久久精品国产一区二区三| 挪威xxxx性hd极品| 欧美影视一区在线| 91福利社在线观看| 日本高清视频一区二区| 国产精品一区二区免费福利视频| 香艳视频网站| 波多野结衣一区| 911国产精品| 嗯啊主人调教在线播放视频| 欧美日韩mp4| 不卡的av中文字幕| 热国产热中文视频二区| 成人黄色网免费| 欧美不卡在线一区二区三区| 精品视频—区二区三区免费| 99热这里精品| 午夜久久av| 亚洲午夜网未来影院| 99riav视频| 日韩免费不卡视频| 国产一区视频在线观看免费| 成人的网站免费观看| 2020亚洲男人天堂| 久草免费在线观看视频| 欧美激情一区二区三区在线视频观看| 网站免费在线观看| 夜夜嗨av一区二区三区中文字幕| 欧美大片在线观看一区二区| caoporn国产精品免费视频| 手机成人在线| 在线欧美日韩精品| 国内av免费| 九九精品视频在线观看| xxxx性bbbb欧美野外| 在线播放91灌醉迷j高跟美女| 日本一区二区高清| 中文字幕欧美激情一区| 欧美一区 二区 三区| 无码播放一区二区三区| 国产又粗又长| 国产麻豆视频在线观看| 日韩精品久久一区| 色欧美片视频在线观看在线视频| 欧美成人短视频| 麻豆国产精品va在线观看不卡| 国产精品国产三级国产专业不| 成人写真视频| 中文字幕不卡的av| 国产调教一区二区三区| 教室别恋欧美无删减版| 亚洲国产影院| 国产一区二区三区四区在线观看| 国产成人高清| 国产一级大片免费看| 一区二区理论电影在线观看| brazzers精品成人一区| 91老司机在线| 欧美日韩精品一本二本三本| 99视频在线看| 亚洲人成亚洲人成在线观看| 久久综合九色九九| 成人免费视频在线观看| 日本韩国欧美超级黄在线观看| 欧美色爱综合| 91精品国产欧美一区二区18| 国产精品成人一区二区艾草| 国产精品扒开腿做爽爽爽的视频| av高清资源| x99av成人免费| 中文文字幕一区二区三三| 婷婷久久综合九色综合伊人色| 在线播放高清视频www| 视频在线不卡免费观看| 国产毛片精品| 疯狂蹂躏欧美一区二区精品| 这里只有精品免费视频| 亚洲欧洲日本在线| 外国精品视频在线观看| 影音先锋导航| 成人免费网站在线观看| www.xxxx精品| 97视频在线观看免费| 色av男人的天堂免费在线| 黄色一级大片在线免费看国产一| 亚洲激情国产精品| 强迫凌虐淫辱の牝奴在线观看| 日韩免费观看高清完整版在线观看| 26uuu欧美日本| 九九精品在线| 免费av毛片在线看| 国产女主播视频一区二区| 欧美三级电影在线播放| 亚洲激情图片小说视频| 91久久久久国产一区二区| 久久久久久久黄色| www婷婷av久久久影片| 可以免费观看av的网站| 精品一级视频| 亚洲狠狠婷婷| 婷婷丁香久久五月婷婷| 在线综合+亚洲+欧美中文字幕| 亚洲国产激情一区二区三区| 美女三级福利视频| 免费男女羞羞的视频网站在线观看| 青青草原成人网| 国产成人精品亚洲777人妖| 国产精品日产欧美久久久久| 橘梨纱av一区二区三区在线观看| 日韩成人午夜精品| 69堂国产成人免费视频| 国产无套精品一区二区| 欧美日韩一区二区三区电影| www在线观看免费视频| 国产精品老牛影院在线观看| 国产在线播精品第三| 一区二区三区在线视频免费| 欧美日韩精品免费观看视完整| 欧美视频一区二区| 中文字幕先锋av影音资源网| 亚洲精品美女免费| 日本一区二区三区四区五区| 日本精品在线观看视频| 免费看成人人体视频| 影音av资源站| 国产精品福利一区| 毛片免费在线| 十九岁完整版在线观看好看云免费| 男人天堂2017| 热re99久久精品国产99热| 午夜伦理精品一区| 久久se这里有精品| 黑人性受xxxx黑人xyx性爽| 日韩a级作爱片一二三区免费观看| 亚洲综合精品| 久久国产精品亚洲va麻豆| 久久久在线免费观看| 亚洲午夜精品一区二区三区他趣| 免费中文字幕日韩欧美| 无码成人精品区在线观看| 男女午夜视频在线观看| 麻豆一二三区精品蜜桃| 亚洲激情欧美激情| 欧美老女人xx| 欧亚成年男女午夜| av在线播放成人| 九九99九九精彩| 97在线观看免费观看高清| 亚洲国产精品免费在线观看| 在线视频在线视频7m国产| 激情国产一区| 欧洲杯足球赛直播| 久久久久国产一区二区三区| 中文字幕精品三区| 114国产精品久久免费观看| 久久久久久久久久久国产精品| av免费播放网址| 亚洲男人天堂久久| 国产成人亚洲精品自产在线| 欧美午夜精品一区二区三区电影| 国产真实有声精品录音| 伊人激情综合网| 成人影院网站ww555久久精品| 日韩一区二区三区四区区区| 亚洲综合网狠久久| 777午夜精品电影免费看| 欧美在线三级| 欧美少妇一级片| 69精品无码成人久久久久久| 日韩福利片在线观看| 久久久久久一级片| 天天爱天天做天天操| 亚洲精品国产福利| 91色乱码一区二区三区| 精品成人无码一区二区三区| 一个人看的日本www的免费视频| 欧美特黄视频| av影院在线| 亚洲精品亚洲人成人网| 国产精品美女免费看| 黄色一级二级三级| 亚洲综合中文网| 国产精品嫩草69影院| 亚洲欧美激情国产综合久久久| 国产在线拍揄自揄视频不卡99| 国产精品久久久久久久泡妞| 超碰在线观看免费| 精品国产福利在线| eeuss影院www免费视频| 欧美国产第二页| 波多野结衣的一区二区三区| 成人黄色av网站| 国产福利在线观看视频| 亚洲一区在线看| 97免费视频观看| 国产精一区二区| 在线观看免费av网址| 三级毛片电影网站| 国产精品免费网站在线观看| 亚洲日本激情| 91视频这里只有精品| 国产激情999| 亚洲美腿欧美激情另类| 日本性视频网站| 久久久在线视频| 国产毛片久久久久久国产毛片| 日韩毛片久久久| 国产乱子轮xxx农村| 日韩视频免费中文字幕| 成人看片app| 中文字幕亚洲综合久久筱田步美| 性高潮久久久久久久久久| 国产精品毛片久久久| 青青草原一区二区| 一二三四视频在线中文| 97国产精品人人爽人人做| 91九色综合| 久久精品国产68国产精品亚洲| 最近中文字幕在线观看视频| 亚洲高清乱码| 手机在线观看你懂的| 成人中文字幕+乱码+中文字幕| 国产一级黄色录像| 少妇真人直播免费视频| 国产一区二区三区精品欧美日韩一区二区三区| 日韩欧美精品在线观看视频| 欧美二区三区91| 亚洲国产一区二区三区青草影视| 色琪琪丁香婷婷综合久久| 久久黄色片视频| 日本久久伊人| 亚洲高清不卡| 亚洲国产成人av网| 国产精品777| 精品一区二区三区蜜桃| 99视频入口| 久久视频精品在线| 无人视频在线观看免费| 久久久久久久999精品视频| 添女人荫蒂视频| 亚洲欧美在线看| 亚洲一区中文字幕永久在线| 亚洲精品黄色| 国产露脸无套对白在线播放| 久久免费偷拍视频| 麻豆app在线观看| av免费在线观| 一级片免费网址| 国产精品老女人视频| 国产精品一区二区人妻喷水| 欧美怡春院一区二区三区| 成人午夜在线影视| 9999精品成人免费毛片在线看| 亚洲国产精品成人综合| 亚洲精品成人a| xxxxx成人.com| 日产精品99久久久久久| 三级在线视频| 久久亚洲精品中文字幕| 天天好比中文综合网| 精品推荐国产麻豆剧传媒| 国产一区二区三区精品欧美日韩一区二区三区| av小说天堂网| 九色综合国产一区二区三区| 国产精品久久久久久久一区二区| 乱码第一页成人| 亚洲一区二区三区小说| 日韩av电影一区|