Javascript 使用Fetch-In-js下载图像

Javascript 使用Fetch-In-js下载图像,javascript,reactjs,fetch,Javascript,Reactjs,Fetch,我正在尝试使用fetch-in-js下载一个图像。但每当我调用函数时,我都会面临CORS错误 var image_trade_license = new Image(); image_trade_license.crossOrigin = "anonymous"; image_trade_license.src = "https://via.placeholder.com/150/92c952"; /

我正在尝试使用fetch-in-js下载一个图像。但每当我调用函数时,我都会面临CORS错误

            var image_trade_license = new Image();
            image_trade_license.crossOrigin = "anonymous";
            image_trade_license.src = "https://via.placeholder.com/150/92c952";
            // get file name - you might need to modify this if your image url doesn't contain a file extension otherwise you can set the file name manually
            var fileName_trade_license = 'trade_license';
            image_trade_license.onload = function () {
                var canvas = document.createElement('canvas');
                canvas.width = this.naturalWidth; // or 'width' if you want a special/scaled size
                canvas.height = this.naturalHeight; // or 'height' if you want a special/scaled size
                canvas.getContext('2d').drawImage(this, 0, 0);
                var blob_trade_license;
                // ... get as Data URI
                if (image_trade_license.src.indexOf(".jpg") > -1) {
                blob_trade_license = canvas.toDataURL("image_trade_license/jpeg");
                } else if (image_trade_license.src.indexOf(".png") > -1) {
                blob_trade_license = canvas.toDataURL("image_trade_license/png");
                } else if (image_trade_license.src.indexOf(".gif") > -1) {
                blob_trade_license = canvas.toDataURL("image_trade_license/gif");
                } else {
                blob_trade_license = canvas.toDataURL("image_trade_license/png");
                }
                $("#image1").append("<a download='" + fileName_trade_license + "' href='" + blob_trade_license + "'><button>Download Trade License</button></a>");
            }

首先,您是否在fetch config中设置过
模式:“no cors”
?像这样:

fetch('https://via.placeholder.com/150/92c952', {
      method: 'POST',
      mode: "no-cors"
})
如果您仍然收到CORS错误。您可以在Chrome中禁用源策略以继续调用API,而不会出现CORS错误


或者,可以在Web浏览器中为您提供有关CORS的更多信息

参考这个答案,试着这样做
fetch('https://via.placeholder.com/150/92c952“,{method:'GET',mode:'no cors'})。然后(resp=>console.log('test'))
cors错误通常是后端的问题。请让后端开发人员插入cors代码。对于express.js后端,您可以参考以下页面:@AlekseiBulgak我尝试了这个,但仍然没有得到正确的输出。
fetch('https://via.placeholder.com/150/92c952', {
      method: 'POST',
      mode: "no-cors"
})