Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery和PHP显示数据_Php_Jquery - Fatal编程技术网

使用jQuery和PHP显示数据

使用jQuery和PHP显示数据,php,jquery,Php,Jquery,背景 我对PHP或jQuery了解不多,我想知道我正在尝试做的事情是否可行。我有一个可以访问防火墙后面数据库的服务器。我想使用jQuery每隔5秒将数据推送到外部服务器的PHP脚本中,并在其中公开显示。据我所知,此外部服务器无法访问数据库。如果这是可能的,我需要在PHP脚本中添加什么 到目前为止我所拥有的 internalServer.js: function timedPost() { $.ajax({ type: 'POST', url: 'http:

背景

我对PHP或jQuery了解不多,我想知道我正在尝试做的事情是否可行。我有一个可以访问防火墙后面数据库的服务器。我想使用jQuery每隔5秒将数据推送到外部服务器的PHP脚本中,并在其中公开显示。据我所知,此外部服务器无法访问数据库。如果这是可能的,我需要在PHP脚本中添加什么

到目前为止我所拥有的

internalServer.js:

function timedPost() {
    $.ajax({
        type: 'POST',
        url: 'http://externalserver/display.php',
        crossDomain: true,
        data: '{"some":"json"}',
        dataType: 'json'
    });
    setTimeout("timedPost()", 5000);
}
externalServer.php

<?php 
    switch ($_SERVER['HTTP_ORIGIN']) {
        case 'http://internalServer': case 'https://internalServer':
        header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
        header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
        header('Access-Control-Max-Age: 1000');
        header('Access-Control-Allow-Headers: Content-Type');
        break;
    }
?>

我还没有做过跨域的工作,但是在jQuery站点上快速查看一下,就会发现这应该是可能的

首先,看看你已经做的是否有效——你还没有说。大概externalServer.php也会做您需要的数据记录?使用Firefox/Firebug或Chrome/Safari中的开发工具来观察正在进行的AJAX操作,并查看它是否返回HTTP响应代码200一切正常

如果这不起作用,请对您自己的服务器执行AJAX操作,然后在处理此操作的PHP代码中,使用curl或类似工具将数据发布到外部服务器上的其他脚本。这是代理HTTP请求,虽然它需要另一个请求/响应跃点,但我可能会这样做


编辑:啊哈,我明白你为什么要在上面写标题了。您希望脚本在外部服务器上进行AJAX日志记录和显示。这是不可能的——一个脚本用于AJAX日志记录,另一个脚本用于显示。正如我在评论中所建议的,登录到本地文件或数据库,这只是一个文件,并用不同的脚本显示该数据。

修复此问题!数据:{some:json}和setTimeouttimedPost,5000;你在使用时有任何实际问题吗?我应该提到我在Firebug中获得了200状态码,所以我猜这意味着数据正在发送和接收,好吗?我对PHP几乎一无所知。你能不能,或者其他任何人,指导我写必要的代码来显示/读取/存储/我在帖子中得到的任何数据,如果这有意义的话?是的,200是个好兆头。如果在Firebug中选中正确的选项卡,还可以查看发送的数据是否正确。如果这也很好,那么在externalServer.php中需要做的就是记录数据。当然,您可以使用数据库,但如果手头没有数据库,请将其记录到文件中,并获取另一个脚本来显示它。请参见我的编辑。