【问题标题】:Steam API Get SteamID using JavascriptSteam API 使用 Javascript 获取 SteamID
【发布时间】:2012-10-20 11:51:31
【问题描述】:

遇到了似乎是同源策略的问题,这让人很头疼!

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

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

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

我需要的 steamid 就在顶部。所以我想我会使用 JQuery Ajax 来获取它并解析出我需要的 id 以供以后使用(steamapi 使用需要 steam64id),如下所示。以下是相关代码的 sn-p:

$.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(同源策略)。

我是不是走错了路,有解决方法吗?

谢谢!

【问题讨论】:

    标签: javascript jquery ajax steam


    【解决方案1】:

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

    提前致谢。

    【讨论】:

      【解决方案2】:

      正确。 You are running into the same-origin policy:

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

      it looks like Steam does not offer a cross-origin solution like JSONP。这意味着您又回到了旧的但可靠的解决方案:在您的服务器上获取数据,而不是在浏览器中。


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

      【讨论】:

      • 我也很担心,但这不是一个真正的问题。服务器端我去。谢谢! (也感谢您的快速回答!)
      • 也有解决这个问题的服务,所以你不必像json2jsonp.com那样为此设置服务器脚本
      猜你喜欢
      • 2021-02-23
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 2017-01-01
      相关资源
      最近更新 更多