CasperJS AJAX表单通过POST无法正常工作

时间:2013-11-11 11:49:30

标签: javascript jquery phantomjs casperjs

我想让CasperJS使用AJAX发布一个表单 - 它似乎对我不起作用,代码如下:

this.then(function() {
    response = this.evaluate(function() {
        params = $("#offer").serialize();

        //require('utils').dump(params);
        $.ajax({
            type: "POST",
            url: 'http://www.example.com/getoffer.php',
            data: params,
            success: function (data) {
                //return data.responseText;
                return __utils__.sendAJAX(url, 'POST', params);
            },
            error: function (xhr,status,error){
                return error;
            }

        });
    });

    this.echo(response);
});

1 个答案:

答案 0 :(得分:2)

CORS?

(我很想把它作为我有史以来最短的StackOverflow回答: - )

您的JavaScript正在从浏览器内部执行,安全模型将适用。你的原因"将是CasperJS要求的页面;如果那不是" www.mysite.com" (或者如果它是HTTPS),那么浏览器将拒绝发送它。

这个答案https://stackoverflow.com/a/16221536/841830--web-security=false(将其作为casperjs命令行选项)将绕过CORS限制。

这个问题似乎和你一样,所以如果它不是CORS问题,它可能会给你一些其他想法:http://code.google.com/p/phantomjs/issues/detail?id=28