Steam Web API:获取CSGO库存/ CrossDomainRequest

时间:2016-01-15 19:49:48

标签: json ajax steam steam-web-api

我在向本地主机发出ajax请求时遇到问题http://steamcommunity.com/profiles/ {steamid} / inventory / json / 730/2

问题似乎是他们没有启用CORS标头,所以我必须使用jsonp。由于GET请求返回json,但我的ajax函数期待json -p我收到错误:

Uncaught SyntaxError: Unexpected token :
2?callback=jQuery22005740937136579305_1452887017109&_=1452887017110:1 

我需要这个资源,但我不确定如何解决这个问题。我环顾四周,但没有发现任何与此问题相符的内容。有一些网站能够获得特定用户的库存,因此在某些方面它必须是可能的。

我的Ajax电话

    $.ajax({
    url: "http://steamcommunity.com/profiles/76561198064153275/inventory/json/730/2",
    type: 'GET',
    dataType: 'jsonp',
    success: function(response) {
        console.log(response);
        if(response.error){
            alert(response.error_text);
        }else {
            console.log("SUCCESS!!");
        }
    }
});

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方法!我正在使用django作为我的Web应用程序,因此我尝试使用请求服务器端。

我通过pip(库:http://docs.python-requests.org/en/latest/

安装了请求库

在我的django应用程序中,我创建了一个可以通过我的AJAX请求调用的视图

def get_steam_inv(request):
     user_steam_profile = SteamProfile.objects.get(brokerr_user_id = request.user.id)
     r = requests.get("http://steamcommunity.com/profiles/76561198064153275/inventory/json/730/2")
     return JsonResponse(r.json())

然后我的ajax请求此视图:

$.ajax({
    url: "/ajax_get_steam_inv/",
    type: 'GET',
        success: function(response) {
            console.log(response);
            // result = JSON.parse(response);
            if (response.error){
                alert(response.error_text);
            } else {
                console.log(response);
            }
        }
});

现在我有了我需要的数据!