从challonge api处理json

时间:2015-04-19 01:43:35

标签: jquery json jsonp

我试图在Challonge Api的帮助下建立一个Power Rankings应用程序,但是当我检索json时,JS似乎一直向我发送错误。

Test Site

$(document).ready(function(){

$.ajax({
        url: 'https://api.challonge.com/v1/tournaments/3j91s6g1/matches.json',
        type: 'GET',
        dataType: "jsonp",
        success: function (data) {
            // FOR TEST PURPOSE
             $.each(data, function(index, element) {
                $('body').append($('<div>', {
                    text: element.name
                }));
            });
        },
        error : function(error){
            console.log(error)
        }
    });

});

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我正在四处寻找关于这个API API的信息并偶然发现了这个问题,我想我会给你一个答案。

您遇到使用JavaScript请求错误的原因是因为该商家信息系统的API未启用跨源请求。为了防止网页使用Ajax请求从任何其他网站提取用户的数据,Web浏览器会检查其他网站,以查看是否可以通过查找跨源头来发送请求。如果您想了解更多信息,可以查看the Wikipedia article或其他关于CORS(跨域资源共享)的网站。

我应该补充一点:您通常不想与其他任何人分享您的API密钥,因为这与您的帐户直接相关。您问题中URL的第一部分是您的用户名:密钥,这意味着发生这种情况的任何人都可以使用它来修改括号等。这实际上可能是为什么不允许使用CORS的原因;人们不应该从JavaScript发送这些请求,因为它需要共享他们的API密钥(用户与网页,或网站所有者与用户)。

您还需要小心地将任意文本回显到网页。我不知道卖家的参与者名称限制,但可能会导致cross-site scripting vulnerability