91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現跨域圖片資源權限CORS enabled image

發布時間:2021-09-07 09:23:56 來源:億速云 閱讀:196 作者:小新 欄目:移動開發

這篇文章主要介紹了如何實現跨域圖片資源權限CORS enabled image,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

HTML 規范文檔為 images 引入了 crossorigin 屬性, 通過設置適當的頭信息 CORS , 可以從其他站點加載 img 圖片, 并用在 canvas 中,就像從當前站點(current origin)直接下載的一樣.

什么是 “被污染的(tainted)” canvas?

盡管沒有CORS授權也可以在 canvas 中使用圖像, 但這樣做就會污染(taints)畫布。 只要 canvas 被污染, 就不能再從畫布中提取數據, 也就是說不能再調用 toBlob(), toDataURL() 和 getImageData() 等方法, 否則會拋出安全錯誤(security error).

這實際上是為了保護用戶的個人信息,避免未經許可就從遠程web站點加載用戶的圖像信息,造成隱私泄漏。

示例: 從其他站點保存圖片

首先, 圖片服務器必須設置相應的 Access-Control-Allow-Origin 響應頭。添加 img 元素的 crossOrigin 屬性來請求頭。比如Apache服務器,可以拷貝HTML5 Boilerplate Apache server configs 中的配置信息, 來進行回應:

<IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
    <FilesMatch "\.(cur|gif|ico|jpe?g|png|svgz?|webp)$">
        SetEnvIf Origin ":" IS_CORS
        Header set Access-Control-Allow-Origin "*" env=IS_CORS
    </FilesMatch>
    </IfModule>
</IfModule>

這些設置生效之后, 就可以像本站的資源一樣, 保存其他站點的圖片到 DOM存儲 之中(或者其他地方)。

var img = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d"),
    src = "http://example.com/image"; // 具體的圖片地址

img.crossOrigin = "Anonymous";

img.onload = function() {
    canvas.width = img.width;
    canvas.height = img.height;
    ctx.drawImage( img, 0, 0 );
    localStorage.setItem( "savedImageData", canvas.toDataURL("image/png") );
}
img.src = src;
//  確保緩存的圖片也觸發 load 事件
if ( img.complete || img.complete === undefined ) {
    img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
    img.src = src;
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何實現跨域圖片資源權限CORS enabled image”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平凉市| 广汉市| 武强县| 婺源县| 东乌珠穆沁旗| 通渭县| 申扎县| 巫山县| 丹棱县| 延寿县| 永昌县| 安宁市| 广州市| 临江市| 昌江| 五大连池市| 朝阳区| 阳信县| 甘德县| 台湾省| 宝丰县| 安西县| 酒泉市| 沙雅县| 新疆| 化隆| 靖宇县| 额尔古纳市| 平南县| 巴塘县| 福建省| 炎陵县| 石城县| 利津县| 昌平区| 和平县| 盖州市| 德格县| 舟山市| 嘉黎县| 崇礼县|