一尘不染

Steam API使用Javascript获取SteamID

ajax

遇到了似乎是同源政策的问题,这引起了很多麻烦!

为了追赶,我基本上是在仅提供用户名时尝试获取用户的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(相同来源策略)。

我是否以错误的方式处理此问题,是否有解决方法?

谢谢!


阅读 1095

收藏
2020-07-26

共1个答案

一尘不染

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

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

2020-07-26