【问题标题】:How to access different domain data using Java script如何使用 Javascript 访问不同的域数据
【发布时间】:2012-01-15 02:27:50
【问题描述】:

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

我知道它不能直接使用 JavaScript 访问。所以我所做的是,在域 A 中,我创建了一个 JavaScript 文件作为 PHP 脚本的前端,该脚本对 PHP 进行 AJAX 处理并返回数据。但不幸的是它不起作用

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

How to get data with JavaScript from another server?

域 A

PHP - 数据.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 中包含来自 域 Aexample.js 文件

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

我希望我已经让自己被理解了!这可以成立吗?它类似于 Google 朋友连接,我的意思是,只需向客户端提供 JavaScript 即可。每件事都在服务器端进行

感谢您提供这个论坛

【问题讨论】:

    标签: javascript cross-domain


    【解决方案1】:

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

    域 A - data.php:

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

    域 B - 客户端:

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

    【讨论】:

    • 感谢该解决方案,但它似乎不适用于跨域。如果服务器和客户端在同一个域中,它的工作,否则没有。
    • 你能定义不工作吗?我链接到的 jQuery 页面有一个概念证明示例,其中包含来自 Flickr 的图片,显示了使用 JSONP 的跨域 ajax。到目前为止,您可以显示您的代码吗?请求是否发送到您的 php 页面? FireBug 控制台显示什么?我刚刚意识到我在帖子中使用了 js 回调中的 message 属性而不是 data,从而在我的帖子中犯了一个小错误。我已经相应地修正了我的帖子。
    • 我认为问题仍然存在! Javascript 不能直接跨域访问服务器。它需要一个中间体。我使用了来自 jQuery 的 ajax。 JSON 也给出了相同的响应。正在检索空数据。
    • thanx.. 它现在可以工作了。我想这只是导致问题的错字。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多