【问题标题】:Receiving data from another site从另一个站点接收数据
【发布时间】:2013-04-10 02:52:24
【问题描述】:

我想制作一个小网页,根据来自另一个站点的各种数据来计算东西。假设是一款在线浏览器游戏。

我想从游戏的网页中获取一些具体细节,但我什至不知道从哪里开始。

这对 javascript 是否可行(如果不是,我想知道它是什么语言)?谁能给我一个关于如何做到这一点的一般指导方针?

【问题讨论】:

  • 您将访问什么样的数据以及从哪里访问?
  • 首先我要了解Same Origin Policy
  • @LeeTaylor,类似于复制粘贴一些游戏信息以自动进行计算。
  • Javascript 可以做到这一点,但前提是来自其他站点的数据格式正确(jsonp)。这似乎是一个相当模糊的问题。您能否详细说明您正在尝试做什么以及您希望从哪个站点获取数据?

标签: javascript


【解决方案1】:

您可以使用 AJAX 和 XMLHTTPRequest 的组合,但这些都受same origin policy 的约束。

当然,如果外部站点可以在JavaScript Object Notation format (JSON) 中发回数据以提高可读性,那将变得容易得多。

这里有一个类似的问题询问如何使用 XMLHTTPRequest 获取外部站点的内容:How to specify an external website for XMLHTTPRequest

关于使用 XMLHTTPRequest 和 JSON 还有一个类似的问题:Cross-domain JSON request?

【讨论】:

    【解决方案2】:

    我有一个使用 AJAX 动态获取信息的标准函数。我使用 PHP 作为我的听众。您的侦听器必须能够接受来自 URL 的变量,例如 PHP $_GET[]。

    在下面的示例中,名为“source_url.php”的侦听器必须检查在 $_GET[field] 中接收到的值,然后简单地打印/回显结果。

    JAVASCRIPT:

    function get_(url, func)
    {
     var http;
     try { http = new XMLHttpRequest(); } catch (e) { try { http = new ActiveXObject(\"Msxml2.XMLHTTP\"); } catch (e) { try { http = new ActiveXObject(\"Microsoft.XMLHTTP\"); } catch (e) { alert(\"Your browser broke!\"); return false; } } }
    
     http.open(\"GET\", url, true);
     http.onreadystatechange = function() { if(http.readyState == 4) { func(http); } }
     http.send(null);
    }
    
    function get_info(fieldname)
    {
     get_("source_url.php?field=" + fieldname, showResult)
    }
    
    function showResult(h)
    {
     alert("The result is: " + h.responseText);
    }
    

    HTML

    <button onClick='get_info("name");'>Get the ship Name</button>
    <button onClick='get_info("reg");'>Get the Registration Number</button>
    <button onClick='get_info("capt");'>Who is the Captain?</button>
    

    PHP

    <?php
     if ($_GET[field] == "name") { print "U.S.S. Enterprise"; }
     if ($_GET[field] == "reg") { print "NCC - 1701"; }
     if ($_GET[field] == "capt") { print "Jean Luc Picard"; }
    ?>
    

    我一直都在使用它,尽管我已经创建了一个具有身份验证安全性的更高级版本。如果您只是学习 AJAX 的工作原理,那么您应该从这里开始。

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 2018-05-08
      • 1970-01-01
      • 2014-05-25
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 2012-05-08
      相关资源
      最近更新 更多