AJAX调用来调用远程JS函数

时间:2014-09-10 15:22:31

标签: javascript php jquery ajax

我在服务器上运行了幻灯片(jQuery Cycle2插件)。幻灯片可以通过在幻灯片上调用jQuery函数的按钮暂停和停止。

应用程序的结构如下:在index.php中我定义了幻灯片功能(停止,暂停等)和一个函数中的AJAX调用,该函数将POST发送到另一个PHP脚本以从中加载幻灯片内容服务器。到目前为止,这很好用。

现在,我想要另一个脚本(或者可能是Webservice)remoteControl.php,它允许我从第三个设备远程控制我的幻灯片。所以说我在服务器和另一个站点(可能是同一个域)上运行幻灯片放映我也使用AJAX调用index.php中的幻灯片放映功能。 目前这不起作用。 在我的index.php的正文部分,我把:

if(isset($_POST['action'])){
    $actionOnSlideshow = $_POST['action'];
    echo '<script>'.$actionOnSlideshow.'();</script>';
}
?>

后面是幻灯片显示的所有其他内容和脚本。 $actionOnSlideshow变量包含从remoteControl.php中的AJAX请求发送的相应函数。 这可能与同源政策有关。然而,第二个AJAX调用来自同一个域,所以这不应该是问题!?

1 个答案:

答案 0 :(得分:1)

  1. 我假设您不想使用类似的东西重建您的应用 服务器上的meteor js,它将更新推送到客户端。 你必须重建你的php页面,所以我只是提到它 供参考。

  2. Websockets很有希望,但还不够稳定 跨平台生产。

  3. 如果您正在运行nginx并且可以重新编译,则可以将NGiNX_HTTP_Push_ModuleAJAX Long Polling结合使用。

  4. 最后,如果所有其他方法都失败了,使用优质旧setTimeout and setInterval的AJAX就可以了。