javascript - 在 ASP.net 中将 Canvas 作为图像保存到服务器

标签 javascript jquery asp.net html html2canvas

我有一个页面,其中包含谷歌地图,并且几个 div 中包含一些数据,我需要用户单击“抓取屏幕截图”按钮,这应该保存用户页面的屏幕截图并将其保存到服务器。

我尝试通过 Html2Canvas,但它不允许我将 canvas 转换为 dataurl,即在我的 javascript 函数中,我使用了这个:

    function GenerateImage()
    {
    html2canvas($('#mainDiv'), {
        onrendered: function(canvas) {
            //this appends the canvas(screenshot) to the page, this is working fine
               document.body.appendChild(canvas);
            //this is not working, 
            //Error: SecurityError: The operation is insecure.
            var image = canvas.toDataURL('image/png');
            image.crossOrigin = 'anonymous'; 
            var imgdata = image.replace(/^data:image\/(png|jpg);base64,/, '');

            $.ajax({
                url: '******',
                data: {
                       imgdata:imgdata
                       },
                type: 'post',
                success: function (response) {   
                console.log('Success');
                }
            });
    }
    });
    }

我做了研究,发现这是一些 CORS 问题,但我无法找到解决方案。

所以,我想知道是否可以使用 ASP.net 进行屏幕截图,这可能吗?提前致谢。

最佳答案

我能够使用代理成功完成此操作。我遇到了来自 map 上不同网站的自定义标记图标的问题。这导致 Canvas 被污染。我将图像移动到我的网站并更改了路径,“受污染的 Canvas 可能无法导出”错误消失了。

关于javascript - 在 ASP.net 中将 Canvas 作为图像保存到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39710843/

相关文章:

javascript - 如何通过点击 Html 中的超链接重定向到另一个页面?

javascript - For...in 循环不从 JSON 对象列表返回值

javascript - 本地页面可以接受文本值并在 Internet URL 上以值作为参数打开新选项卡吗?

asp.net - 如何将 ASP.Net 表单例份验证 loginUrl 全局化为多种语言?

jquery - 使用母版页和内容页的菜单驱动界面

javascript - Meteor.js Iron Router 和类似或动态路由

javascript - Highcharts: "Print all"按钮

javascript - React 和 Meteor "Uncaught TypeError: Cannot read property ' createElement' of undefined"

jquery - 滚动到每个元素的顶部,滚动不起作用

c# - TransactionScope 回滚可以与 Selenium 或 Watin 一起使用吗?