2

我有一个 CasperJS 的错误。我正在尝试单击 onclick 上有 AJAX 请求的链接。永远不会发出 AJAX 请求。

这是我的 index.php 页面:

<html>
<head>
    <title>AJAX test</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js>
    </script>
    <script>
    function test(id){
        $.ajax({
            type: 'POST',
                data: {
                    'id': id
                },
                url: 'test.php',
                async: false
        });
        alert('OK');
        return true;
    }
</script>
</head>
<body>
    <a onclick="return test(1)" href="http://www.google.fr">www.google.fr</a>
</body>
</html>

我的 test.php 页面:

<?php 

print_r($_POST['id']);
mail('mymail', 'Test AJAX', $_SERVER['REMOTE_ADDR'].' : '.$_POST['id']);

?>

还有我的 CasperJS 脚本:

var utils = require('utils');
var casper = require('casper').create({
verbose: true,
logLevel: "debug"
});

casper.start('http://www.example.com/index.php');

casper.thenEvaluate(function(term) {}, 'CasperJS');

casper.then(function() {
    this.click('a');
});

casper.then(function() {
    console.log('clicked ok, new location is ' + this.getCurrentUrl());
});

casper.run();

“警报”消息很好启动,但不是 AJAX 请求。你知道为什么吗 ?

4

1 回答 1

0

好的,我找到了答案。问题是因为我使用了需要身份验证的代理,而 AJAX 请求没有发送所需的用户和密码。

我直接将代理配置为允许来自我的 IP 的所有连接而无需身份验证,并且它可以工作。

于 2013-08-28T12:51:23.150 回答