如何绕过 net::ERR_FAILED 200

JP2*_*P2K 10 html javascript embed proxy html5-canvas

所以基本上我在这里所做的就是进行嵌入,将其复制到画布上,然后尝试将所述复制的背景更改为透明。它确实可以工作,但由于 net:ERR_FAILED 200 而无法在浏览器中工作。

CORS 策略已阻止从源“null”访问“https://clearoutside.com/forecast_image_small/50.70/-3.52/forecast.png”处的图像:不存在“Access-Control-Allow-Origin”标头所请求的资源。

有办法解决这个问题吗?

<!DOCTYPE html>

<html lang="eng">


<head>
    <meta charset="UTF-8">
    <meta nameset="viewport" content="with=device-width, initial-scale=1.0">
    <title>ClearOutside</title>

    <style type="text/css">
        body {
            background-color: transparent;

            -ms-zoom: 0.5;
            -moz-transform: scale(0.5);
            -moz-transform-origin: 0 0;
            -o-transform: scale(0.5);
            -o-transform-origin: 0 0;
            -webkit-transform: scale(0.5);
            -webkit-transform-origin: 0 0;
        }
    </style>

</head>

<body style="background-color:Blue">
    <a href="https://clearoutside.com/forecast/50.70/-3.52">
        <img id="forecast" crossorigin="anonymous" src="https://clearoutside.com/forecast_image_small/50.70/-3.52/forecast.png" /></a>
    <canvas id="myCanvas" width="505" height="41">


        <script>
            document.getElementById("forecast").onload = function(_) {
                const canvas = document.getElementById("myCanvas");
                const context = canvas.getContext("2d");
                const image = document.getElementById("forecast");
                context.drawImage(image, 0, 0);

                const WHITE = 0xFF;
                const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
                const {
                    data
                } = imageData;
                for (let i = 0; i < data.length; i += 4) {
                    if (
                        WHITE === data[i] &&
                        WHITE === data[i + 1] &&
                        WHITE === data[i + 2]
                    ) {
                        data[i + 3] = 0x00;
                    }
                }
                context.putImageData(imageData, 0, 0);
            };
        </script>


</body>

</html>
Run Code Online (Sandbox Code Playgroud)

因此,也许我自己的服务器负责下载图像,但是我不知道如何设置类似的东西,因为我对编码非常陌生。

小智 3

您必须为您正在使用的 API设置CORS