Javascript 使用Fetch-In-js下载图像
我正在尝试使用fetch-in-js下载一个图像。但每当我调用函数时,我都会面临CORS错误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"; /
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"
})