繁体   English   中英

Steam API 使用 Javascript 获取 SteamID

[英]Steam API Get SteamID using Javascript

遇到了似乎是同源策略的问题,这引起了相当大的头痛!

为了切入正题,我实际上是在仅提供用户名时尝试获取用户的 steam64id。

例如,我的用户名:“Emperor_Jordan”我会去:

http://steamcommunity.com/id/emperor_jordan?xml=1

我需要的蒸汽就在顶部。 所以我想我会使用 JQuery Ajax 来获取它并解析出我以后使用所需的 id(steamapi 使用需要 steam64id),如下所示。 这是有问题的代码片段:

$.ajax({
url: "http://steamcommunity.com/id/emperor_jordan/?xml=1",
datatype: "xml",
complete: function()
{
    alert(this.url)
},
success: parse
});

function parse(xml)
{
    alert("parsing");
    _steamID = $(xml).find("steamID64").text();
}

这里的问题是当我收到完成警报时,我从未看到“解析”。 曾经。 它永远不会得到那个回调,这让我相信我遇到了 SOP(同源策略)。

我是否以错误的方式接近这个问题,有解决方法吗?

谢谢!

正确的。 正在运行到同源策略:

XMLHttpRequest cannot load http://steamcommunity.com/id/emperor_jordan/?xml=1. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.

看起来 Steam 没有提供像 JSONP 这样的跨域解决方案 这意味着您又回到了旧但可靠的解决方案:在您的服务器上获取数据,而不是在浏览器中。


Steam Web API 的一些相关反馈: https : //developer.valvesoftware.com/wiki/Steam_Web_API/Feedback#API_Considerations_for_Web_Developers

您需要在 Heroku 中创建一个代理服务器才能获取数据。 Cors 限制我们将数据直接调用到我们的浏览器,而不是服务器到服务器的交互。 所以我们需要一个代理服务器来代表我们发送请求和接收数据。 它对我有用。

提前致谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM