javascript - 无法使用 jQuery 从 PHP 脚本获取结果

标签 javascript jquery phantomjs casperjs

我试图在 CasperJS 函数中使用 jQuery 调用本地服务器上的 PHP 脚本,但不知何故我不这样做得到结果。这是我的代码:

casper.then(function() {
    var result = casper.evaluate(function() {
        var result = $.get('http://localhost/test.php', function() {});
        return result;
    });
    result = JSON.stringify(result);
    this.echo(result);
    this.exit();
});

无论调用哪个 URL,它都会提供相同的结果:

{"abort":{},"always":{},"complete":{},"done":{},"error":null,"fail":{},"getAllRe
sponseHeaders":{},"getResponseHeader":{},"overrideMimeType":{},"pipe":null,"prog
ress":{},"promise":{},"readyState":1,"setRequestHeader":{},"state":{},"statusCod
e":{},"success":null,"then":{}}

我检查过的事情:

  • XAMP 服务器正在运行并工作
  • PHP 文件在那里
  • 任何其他网址也不起作用并提供结果(见上文)
  • jQuery 函数 $.load() 也不起作用(结果为“null”)
  • jQuery 已正确加载(否则 CasperJS 会抛出错误)
  • 如果我只是返回它就可以正常工作(例如返回“test”;)

不知道该怎么办。感谢您的任何建议!

最佳答案

我建议将 $.ajaxSetup(); 中的 async 更改为 false

而且,您应该从回调成功函数中获取返回数据

casper.then(function() {
    var result = casper.evaluate(function() {

        var $return = ''; // initiate $return

        var async = $.ajaxSetup()['async'];
        $.ajaxSetup({'async':false}); // Set async to false

        $.get('http://localhost/test.php', function( data ) {

            $return = data; // test.php return data is saved to $return

        });

        $.ajaxSetup({'async': async }); // Set async to back to original value

    });
    result = JSON.stringify($return);
    this.echo(result);
    this.exit();
});

唯一的缺点,感谢 Esailija需要指出的是,您的页面将“挂起”直到请求完成

关于javascript - 无法使用 jQuery 从 PHP 脚本获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278448/

相关文章:

javascript - 哪个 HTML 标签 "support"背景色

jquery 函数

javascript - 在 Chart.js 中更改工具提示颜色

phantomjs - 无法将屏幕截图保存到 casperjs 中的某个位置(windows7 64 位)

javascript - 如何使用 enzyme 在 PhantomJS 中获取第二个元素?

javascript - Highcharts 和 phantomjs 错误。找不到变量 Highcharts

javascript - 如何在 JavaScript 中将字符串中的字母和数字分开

javascript - 在 Canvas 上绘制(重新加载)带有 cors = "anonimous"的图像(javascript)

javascript - Karma 运行程序在 TDD 上因解析错误而退出

javascript - 您如何设计或覆盖下拉菜单的默认悬停颜色?