Javascript 图像抓取并发送到服务器

Javascript 图像抓取并发送到服务器,javascript,jquery,ajax,web-scraping,Javascript,Jquery,Ajax,Web Scraping,我刮了一些页面,我知道,我知道,我不应该,但从我们的内部网的信息是不可用的任何其他可靠的方式。所以我注入了一个小的$..每个…$。ajax{};JavaScript,这很好用 我从中得到了大部分信息,但现在我需要这些图片。我可以获取URL,但我需要先将它们存储在服务器或本地计算机上。我无法使用URL,因为这些图像在用户名/密码验证之后 我可以用$.ajaxmultipart/formpost-newformdata构造发送它们吗 欢迎所有想法。一个想法是将它们编码为base64字符串并以这种方式

我刮了一些页面,我知道,我知道,我不应该,但从我们的内部网的信息是不可用的任何其他可靠的方式。所以我注入了一个小的$..每个…$。ajax{};JavaScript,这很好用

我从中得到了大部分信息,但现在我需要这些图片。我可以获取URL,但我需要先将它们存储在服务器或本地计算机上。我无法使用URL,因为这些图像在用户名/密码验证之后

我可以用$.ajaxmultipart/formpost-newformdata构造发送它们吗


欢迎所有想法。

一个想法是将它们编码为base64字符串并以这种方式存储。这里有一把小提琴演示了这种方法:

我还发现,这同样证明了这种方法

我的小提琴代码:

var canvas=document.getElementByIdmyCanvas; var srcImg=document.getElementByIdsourceImage; var final=document.getElementByIdbase64Image; var img=新图像; img.crossOrigin='匿名'; img.onload=函数{ canvas.height=this.height; canvas.width=this.width; getContext'2d'.drawImagethis,0,0; var dataURL=canvas.toDataURL; canvas=null; final.src=数据URL; }; img.src=srcImg.src; img{ 最大宽度:100%; } 原始图像 画布渲染图像 Base64编码图像
我尝试过,但出现了以下错误:跨源图像加载被跨源资源共享策略拒绝。我尝试了这个网页上的代码片段,只是复制/粘贴到控制台

function getDataURL(srcImg, done) {
     var img = new Image();
     img.crossOrigin = 'Anonymous';
     img.onload = function(){
        var canvas = document.createElement('canvas');
        canvas.height = this.height;
        canvas.width = this.width;
        canvas.getContext('2d').drawImage(this,0,0);
        done(canvas.toDataURL());
    };
    img.src = srcImg.src;
}
getDataURL($("img")[0], function(data) { 
  console.log(data);
});

你不能只添加一个授权头吗?例如,请参见@gd73-添加授权标头很困难,它使用过期会话,因此这将非常困难。如下所示,在Safari下,跨源资源共享策略会拒绝跨源映像加载,但在Firefox下效果良好。非常感谢。@Johan,对不起。我最近没有闲暇时间出去玩。跨源策略是一种可以更改的服务器设置。一些服务器允许,而其他服务器不允许。如果是内部服务器,则可能需要更改。如果Firefox允许的话,那也行;虽然,我不知道它是怎么做到的。很高兴你能让它工作。取决于浏览器。。。所以对于我的问题,它解决了这个问题。非常感谢。