我一直试图从steam api中提取数据,并且没有运气,因为我总是得到上述错误.这是我正在使用的代码:
var steamurl = "https://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/V001/?key=[keyomitted]&account_id=38440257&Matches_Requested=10";
function populate_api(){
var json;
$.ajax({
'url': steamurl,
'dataType': "jsonp",
'success': function (data) {
alert('success');
json = data;
}
});
}
我省略了我的API密钥.
我看过很多其他帖子,无法弄清楚问题出在哪里.我尝试过使用Jsonp,常规json,我也试过使用“& callback =?”蒸汽后,但无济于事.
解决方法:
解决方案是添加jQuery代码将调用的本地代理.您的代理将是服务器端代码(PHP,Python,Ruby等),它将查询转发给Valve,然后将其返回给您的jQuery调用.但是,您必须使用其支持的格式之一(其中JSONP不是其中之一).
高级别地了解您将要做的事情:
>创建接受jQuery将传递的参数的PHP文件.在这种情况下,它看起来像您想要接收的帐户ID和匹配项.不要传递API密钥,这应该存储在PHP文件中
>在PHP中,使用存储的API密钥和两个传递的值构建您的steamurl
>使用此steamurl发出对Valve服务器的调用并检索结果.
>将此响应返回到您的ajax调用
你的PHP看起来像这样(并且应该包括更多的错误检查,因为我只是将$_GET值作为福音:
$matches = $_GET['matches'];
$acct = $_GET['accountid'];
$APIKEY = <YOURKEYHERE>;
$steamurl = "https://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/V001/?key=$APIKEY&account_id=$acct&Matches_Requested=$matches&format=json";
$json_object= file_get_contents($steamurl);
header('Content-Type: application/json');
echo $json_object;
现在您可以使用jQuery来解析此JSON响应.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。