遇到了似乎是同源政策的问题,这引起了很多麻烦!
为了追赶,我基本上是在仅提供用户名时尝试获取用户的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