有没有办法在不通过 QTWebKit 客户端的情况下在 PhantomJS(或 CasperJS)中下载文件?
我想从与正在测试的页面无关的 URL 下载以 JSON 编码的数据。
从 PhantomJS API 或 CasperJS API 中看不出如何做到这一点,因为它们的功能似乎是为了在诡异的客户端中打开 URL。
我希望人们可以简单地运行类似的东西:
fetch(URL, callback);
下载到 PhantomJs 页面然后到客户端的普通过程是有问题的,原因有两个。首先,它缓慢且麻烦。其次,它违反了同源策略(因此 CasperJS base64encode函数将不起作用)。
在最基本的情况下,我希望 PhantomJS 客户端的 javascript 运行程序能够实现 XMLHttpRequest(或类似的东西),但我想知道是否有更规范的东西可用。
编辑
也许可以只包括 jQuery 和 use $.ajax
,但不幸的是,这也会引发同源异常:
XMLHttpRequest 无法加载http://example.com:5000/test。Access-Control-Allow-Origin 不允许使用原始文件://。
我能想出的唯一解决方案是在单独的进程中(例如使用 wget)下载我想以 JSON 格式访问的文件,但由于 PhantomJS不允许执行进程(在撰写本文时),它似乎必须与 PhantomJS 分开启动。