从其他站点接收数据

时间:2013-04-09 17:51:32

标签: javascript

我想根据来自其他网站的各种数据制作一个计算内容的小网页。让我们说一个在线浏览器游戏。

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

这可以用javascript(如果不是我想知道它是什么语言)?谁能给我一个如何做到这一点的指导方针?

2 个答案:

答案 0 :(得分:0)

您可以使用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?

答案 1 :(得分:0)

我有一个使用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的工作原理,那么就应该从这里开始。