Casper.js下载二进制文件不能跨域工作

时间:2013-06-02 06:06:17

标签: javascript node.js cross-domain phantomjs casperjs

我需要使用Casper.js下载图像资源。当图像托管在具有不同域名的CDN上时,我遇到了一些情况。以下是Twitter.com示例,即使使用 web-security = no casperjs --ignore-ssl-errors=yes --web-security=no test.js

也无效
var casper = require("casper").create();

casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0');

casper.start();

casper.thenOpen("https://twitter.com/", function() {
  casper.download("https://abs.twimg.com/a/1369885592/t1/img/front_page/cricket@2x.jpg", "test.jpg");   
});

casper.run(function() {
  casper.exit();
});

有人可以帮我解决这个问题吗?是否可以单独使用http request?我可以这样做,它会起作用

casper.thenOpen("https://abs.twimg.com", function() {
  casper.download("https://abs.twimg.com/a/1369885592/t1/img/front_page/cricket@2x.jpg", "test.jpg");   
});

但这太过分了。

更新1:

我在 Windows 7 上运行phantom.js 1.9.0和casper.js 1.0.2。

这是我得到的错误(当然没有捕获文件):

Remote: sendAJAX(): Using HTTP method: 'GET'
Remote: getBinary(): Unfortunately, casperjs cannot make cross domain ajax reque
sts
Remote: getBinary(): Error while fetching https://abs.twimg.com/a/1369885592/t1/
img/front_page/cricket@2x.jpg: Error: NETWORK_ERR: XMLHttpRequest Exception 101

0 个答案:

没有答案