【问题标题】:Correct proxy script for html2canvashtml2canvas 的正确代理脚本
【发布时间】:2016-01-18 03:08:15
【问题描述】:

我正在尝试让 html2render (http://html2canvas.hertzen.com/) 在我的网站上工作。它适用于基本的东西 - 但没有图像显示(因为它们位于 cdn.domain.com 子域上)。

我一直在阅读,似乎它不喜欢开箱即用的其他域。我发现了几个 PHP 代理脚本:

我试图让这些运行,但我们没有在此服务器上启用 curl。所以,我求助于用 Perl 写一些东西。

这是我目前得到的:

use MIME::Base64;
use File::Slurp;

handle();

sub handle {

    print ('Access-Control-Max-Age:' . 5 * 60 * 1000);
    print ("Access-Control-Allow-Origin: *");
    print ('Access-Control-Request-Method: *');
    print ('Access-Control-Allow-Methods: OPTIONS, GET');
    print ('Access-Control-Allow-Headers *');
    print ("Content-Type: application/javascript");

    #print $IN->header;

    my $url = $IN->param('url');

    $url =~ s|https://cdn.xxx.net|/srv/www/xxx.net/www|g;

    if (-e $url) {

        my $file = read_file($url);

        use JSON;

        my $mime_type;
        if ($url =~ /\.jpe?g$/i) {
            $mime_type = "image/jpg"
        } elsif ($url =~ /\.png$/i) {
            $mime_type = "image/png"
        }
        print JSON::encode_json([{
            "pathinfo" => $url,
            "error" => undef,
            "data" => encode_base64($file),
            "mime_type" => $mime_type
        }]);
    } else {
        print "ACK!";
    }

}

但是,它仍然不起作用 :( 关于代理的文档很少(没有??)(除了告诉您在某些情况下您需要它!)

谁能分享输出的数据应该是什么样子?我尝试根据上面的示例代码解决它,但是我的 PHP 有点生疏(而且我没有启用 PHP 和 Curl 的服务器,我可以对其进行测试)

谢谢!

【问题讨论】:

    标签: html2canvas


    【解决方案1】:

    好的,关于代理的答案不多 - 但我确实遇到了一个帖子:

    HTML2Canvas with CORS in S3 and CloudFront

    这里是使用示例:

     useCORS: true,
    

    ...所以我尝试了:

    html2canvas(document.body, {
      useCORS: true,
      onrendered: function(canvas) {
    
      }
    });                    
    

    ...它的工作原理!!!!

    在我的例子中,我只是使用 domain.com 和 cdn.domain.com 作为 CDN。如果您使用其他 3rd 方 CDN,您可能需要考虑启用 COR 标头。

    【讨论】:

      猜你喜欢
      • 2014-07-19
      • 2018-06-19
      • 2012-04-07
      • 2015-04-12
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2018-09-25
      • 2015-11-09
      相关资源
      最近更新 更多