当前位置: 首页 > 知识库问答 >
问题:

尝试访问跨域URL图像时的Javascript CORS问题

云炜
2023-03-14

我有以下功能可以将图片的较小版本合并到图片本身的较大版本:

function mergeImages(imgref) {
    var canvas = document.createElement("canvas");
    canvas.width = 500;
    canvas.height = 500;
    var ctx = canvas.getContext("2d");
    ctx.rect(0, 0, canvas.width, canvas.height);
    ctx.fillStyle = "#000";
    ctx.fill();

    var myImage = new Image();
    var myImage2 = new Image();
    //myImage.crossOrigin = 'anonymous';
    //myImage2.crossOrigin = 'anonymous';
    myImage.src = imgref;

    myImage.onload = function () {
        console.log('load1')
        ctx.drawImage(myImage, 0, 0, 500, 500);
        myImage2.src = imgref;
        myImage2.onload = function () {
            console.log('load2')
            ctx.drawImage(myImage2, 100, 100, 400, 400);
            var img = canvas.toDataURL("image/png");
            return img;
        }
    }
}

然而,我得到了以下错误:

CORS策略阻止了从源“http://localhost:53594”访问“http://xxxxxxx.com/testpicture.jpg”上的映像:请求的资源上没有“access-control-allow-origin”标头。

我使用了“匿名”交叉起源声明,应该可以解决这个问题,但它似乎没有造成任何影响。

知道吗?

编辑:我删除了交叉起源声明,问题就没有了。现在看来,引起问题的代码行是canvas.todataurl。

共有1个答案

裴英才
2023-03-14

您是否尝试从本地访问到服务器端?有些设置看起来像是从运行端保留本地或服务器。

 类似资料:
  • 阿里云的图片,例如https://syx-hzy5200.oss-cn-shenzhen.aliyuncs.com/c17ed98cdb36...(不同图片这个不一样c17ed98cdb36418498caf32f95c0666f),前端项目中需要有一个需求是将url转图片 代码是 但是ccess to fetch at 'https://syx-hzy5200.oss-cn-shenzhen.a

  • 本文向大家介绍Vue开发环境跨域访问问题,包括了Vue开发环境跨域访问问题的使用技巧和注意事项,需要的朋友参考一下 Vue开发环境跨域访问其他服务器或者本机其他端口,需要配置项目中config/index.js文件,修改如下 其中主要是加入 这样你通过axios 或fetche访问  /api/** 便相当于跨域访问了 http://192.168.1.99:8080/ 总结 以上所述是小编给大家

  • 本文向大家介绍关于C#中ajax跨域访问问题,包括了关于C#中ajax跨域访问问题的使用技巧和注意事项,需要的朋友参考一下 最近因项目需要,需要跨域请求访问数据。跨域访问是指什么? [跨域]:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。所谓同域是指,域名,协议,端口均相同,不明白没关系,举个栗子:例如,我的电脑上有2个服务器 19

  • 平时被问到最多的问题还是关于跨域的,其实跨域问题真的不是一个很难解决的问题。这里我来简单总结一下我推荐的几种跨域解决方案。 我最推荐的也是我工作中在使用的方式就是: cors 全称为 Cross Origin Resource Sharing(跨域资源共享)。这种方案对于前端来说没有什么工作量,和正常发送请求写法上没有任何区别,工作量基本都在后端这里。每一次请求,浏览器必须先以 OPTIONS 请

  • 本文向大家介绍如何实现跨域访问?相关面试题,主要包含被问及如何实现跨域访问?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: JSONP:通过动态创建script,再请求一个带参网址实现跨域通信。document.domain + iframe跨域:两个页面都通过js强制设置document.domain为基础主域,就实现了同域。 JSONP:ajax请求受同源策略影响,不允许进行跨域请求,

  • 本文向大家介绍详解Springboot+React项目跨域访问问题,包括了详解Springboot+React项目跨域访问问题的使用技巧和注意事项,需要的朋友参考一下 一、开发环境 框架:springboot 1.5.10.RELEASE 开发工具:IDEA JDK:1.8 前端框架:React 15.6.1 浏览器:Chrome浏览器 二、跨域问题 本地使用ajax访问localhost:808