如何使用Javascript访问不同的域数据

时间:2010-04-11 12:27:08

标签: javascript cross-domain

这是问题所在。假设有一个 DOMAIN A ,它将成为包含 PHP脚本文件的服务器。来自域A的数据将由DOMAIN B 的客户端访问。

我知道无法使用JavaScript直接访问它。所以我所做的是,在域A中,我创建了一个JavaScript文件作为PHP脚本的前端,用于AJAX和PHP并返回数据。但遗憾的是它无法运作

我遇到了一个在客户端将PHP作为中间人的例子。但我不想在客户端保留任何服务器端PHP代码作为中间人。我只想将Javascript发布到客户端域。

How to get data with JavaScript from another server?

DOMAIN A

PHP - data.php

<?php echo "Server returns data"; ?>

JS - example.js

Ajax到PHP

function getData()
{
   //assume ajax is done for data.php and data is retrieved, now return the data
   return ajaxed_data;
}

域名B

JS

客户端在其HTML中包含来自域A example.js 文件

<script type="text/javascript" src="http://www.DomainA.com/example.js"></script>
<script type="text/javascript">
     alert(getData());
</script>

我希望自己能够理解!这可以建立吗?像谷歌朋友连接,我的意思是,只是向客户提供JavaScript,就是这样。每件事都在服务器端进行

感谢您提供此论坛

1 个答案:

答案 0 :(得分:3)

您可以使用JSONP。 jQuery有一个good support

DOMAIN A - data.php:

<?php
    $data = '{ "data" : "Server returns data" }';
    echo $_GET['jsoncallback'] . '(' . $data . ');';
?>

DOMAIN B - 客户端:

$.getJSON('http://domainA.com/data.php?jsoncallback=?', function(json) {
    alert(json.data);
});