Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. HTML: Linguagem de Marcação de Hipertexto
  3. How to
  4. CORS_habilitar_imagens

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

CORS_habilitar_imagens

The HTML specification introduces acrossorigin attribute for images that, in combination with an appropriateCORS header, allows images defined by the<img> element that are loaded from foreign origins to be used in canvas as if they were being loaded from the current origin.

SeeCORS settings attributes for details on how thecrossorigin attribute is used.

O que é um "contaminado" canvas?

Embora você possa usar imagens sem aprovação do CORS em seu canvas, criando contaminação ao canvas. Uma vez o canvas tenhya sido "contaminado" você não pode mais "puxar" informações do canvas.Por exemplo, você pode não mais usar os métodos canvas toBlob(), toDataURL(), ou getImageData(), fazendo isto você irá lançar um erro de sergurança.

Esta proteção de usuário tem tido dados expostos por uso de informações de imagens de site web remoto sem permissão.

Exemplo: Armazenando uma imagem de uma origem estrangeira

Você precisa ter um servidor hospedando as imagenscom o apropriado Access-Control-Allow-Origin cabeçalho. Adicionando atributos crossOrigin faz uma requisição ao cabeçalho. Você pode usar este exemplo dasConfigurações Apache Server HTML5 Boilerplate para aproximadamente responder com este cabeçalho de resposta.

xml
<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>

Dado que está tudo classificado, você permiti salvar àquelas imagens noArmazenamento DOM

js
var img = new Image(),  canvas = document.createElement("canvas"),  ctx = canvas.getContext("2d"),  src = "http://example.com/image"; // insert image url hereimg.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;// make sure the load event fires for cached images tooif (img.complete || img.complete === undefined) {  img.src =    "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";  img.src = src;}

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp