Javascript 在CasperJS中使用AJAX获取页面的远程数据

Javascript 在CasperJS中使用AJAX获取页面的远程数据,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,在执行CasperJS脚本的过程中,我需要从另一个站点获取并解析JSON数据,以便我可以使用这些数据在我正在积极工作的站点上填写表单 我如何才能做到这一点?您可以使用: 示例执行(不要忘记传递--web安全=no): 希望对您有所帮助。使用xmlhttprequest?如果使用jQuery,我会这样做。我不知道用CasperJS做这件事的最佳方法。请记住,这是一个跨域请求,我不认为这在casper中是一个问题。@NiKo如果我想编辑ajax请求的http头怎么办?我看到有一个关于在phantom

在执行CasperJS脚本的过程中,我需要从另一个站点获取并解析JSON数据,以便我可以使用这些数据在我正在积极工作的站点上填写表单

我如何才能做到这一点?

您可以使用:

示例执行(不要忘记传递
--web安全=no
):


希望对您有所帮助。

使用xmlhttprequest?如果使用jQuery,我会这样做。我不知道用CasperJS做这件事的最佳方法。请记住,这是一个跨域请求,我不认为这在casper中是一个问题。@NiKo如果我想编辑ajax请求的http头怎么办?我看到有一个关于在phantomjs中添加它的问题,但我不确定它是否有任何进展。。建议?@NiKo我想这是不可能的
var casper = require('casper').create();
var wsurl = 'https://raw.github.com/n1k0/casperjs/master/package.json';
var word;

casper.start('http://google.com/', function() {
    word = this.evaluate(function(wsurl) {
        try {
            return JSON.parse(__utils__.sendAJAX(wsurl, 'GET', null, false)).name;
        } catch (e) {
        }
    }, {wsurl: wsurl});
});

casper.then(function() {
    if (!word) {
        this.die('unable to retrieve word');
    }
    this.echo('searching for ' + word);
    this.fill('form[action="/search"]', {q: word}, true);
});

casper.run(function() {
    this.echo(this.getCurrentUrl());
    this.exit();
});
$ casperjs test.js --web-security=no
searching for casperjs
http://www.google.fr/search?hl=fr&source=hp&q=casperjs&gbv=2&oq=&gs_l=