如何在 HTML 中允许跨域使用图像和画布?
要允许跨域使用图像和画布,服务器必须在其 HTTP 响应中包含适当的 CORS(跨域资源共享)标头。可以将这些标头设置为允许特定来源或方法,或允许任何来源访问该资源。
HTML 画布
HTML5 画布是网页上由 JavaScript 代码控制的矩形区域。可以在画布上绘制任何内容,包括图像、形状、文本和动画。该画布是创建游戏、图形和 Web 应用程序的绝佳工具。
方法
允许跨域使用图像和画布的方法是将以下内容添加到标头中 -
Access-Control-Allow-Origin - *
这将允许跨域使用所有图像和画布元素。
示例
以下是允许跨域使用图像和画布的完整示例。要运行它,只需在 Web 浏览器中打开 HTML 文件。
<!DOCTYPE html> <html> <head> <script> function allowCrossOrigin(img, url) { if (url.indexOf('https://') !== 0 && url.indexOf('http://') !== 0) { // only allow cross-origin requests for images that are hosted on a secure // (HTTPS/HTTP) server return; } // create a new Image object and set its src property to the url of the image // that we want to load var image = new Image(); image.src = url; // when the image has loaded, set the src property of the img element to the // url of the image image.onload = function() { img.src = url; }; } </script> </head> <body> <!-- define an img element and set its src property to a local image --> <img id='local-image' src='https://cdn.pixabay.com/photo/2012/08/27/14/19/mountains-55067__340.png' width='200' height='200'> <!-- define another img element and try to set its src property to an image that is hosted on a different domain --> <img id='remote-image' width='200' height='200'> <script> // get a reference to the img element with id="remote-image" var remoteImage = document.getElementById('remote-image'); // set the src property of the img element to the url of the image that we want // to load remoteImage.src = 'https://i.natgeofe.com/n/2a832501-483e-422f-985c-0e93757b7d84/6_square.jpg'; // call the allowCrossOrigin function, passing in the img element and the url // of the image that we want to load allowCrossOrigin(remoteImage, 'https://i.natgeofe.com/n/2a832501-483e-422f-985c-0e93757b7d84/6_square.jpg'); </script> </body> </html>
广告