2012-01-22 68 views
0

背景使用jQuery和PHP来显示数据

我不知道很多关于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; 
    } 
?> 
+0

解决这个问题! 'data:{some:“json”}'''setTimeout(timedPost,5000);' – noob

+0

使用[CORS](https://developer.mozilla.org/En/HTTP_access_control)有没有实际的问题? – greut

回答

0

我没有做跨域的东西,而是一个快速检查在jQuery网站上听起来应该是可能的。

看看你是否已经什么工作,第一 - 你还没说。据推测externalServer.php也会做你需要的数据记录?使用Firefox/Firebug或Chrome/Safari中的开发工具观看正在进行的AJAX操作,并查看它是否带有HTTP响应代码200(一切正常)。

如果这不起作用,做AJAX操作到自己的服务器,然后,处理这一PHP代码中,使用卷曲或类似的数据发布到不同的脚本在外部服务器上。这是“代理”HTTP请求,虽然它需要另一个请求/响应跳,但我可能会这样做。

编辑:aaahhhh,我明白为什么你有你的头()上述声明。您希望您的脚本做AJAX登录您在外部服务器上显示。这是不可能的 - 有一个脚本用于执行AJAX日志记录,另一个用于显示。正如我在评论中所建议的那样,登录到本地文件(或sqlite数据库,这只是一个文件),并用不同的脚本显示该数据。

+0

我应该提到我在Firebug中获得了200个状态代码,所以我猜这意味着数据的发送和接收没问题?我几乎完全不了解PHP。你或者其他任何人能够指导我编写显示/读取/存储/存储任何我在POST中获得的数据所需的代码(如果这有什么意义的话)? –

+0

是的,200是一个好兆头。如果您在Firebug中检查了正确的选项卡,您还可以查看您发送的数据是否正确。如果这也是好的,那么你只需要在externalServer.php中做的就是记录数据。当然,你可以使用数据库,但如果你没有一个数据库,请将其记录到文件并获取另一个脚本来显示它(请参阅我的编辑)。 – halfer

相关问题