我试图在Challonge Api的帮助下建立一个Power Rankings应用程序,但是当我检索json时,JS似乎一直向我发送错误。
$(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)
}
});
});
有什么想法吗?
答案 0 :(得分:3)
我正在四处寻找关于这个API API的信息并偶然发现了这个问题,我想我会给你一个答案。
您遇到使用JavaScript请求错误的原因是因为该商家信息系统的API未启用跨源请求。为了防止网页使用Ajax请求从任何其他网站提取用户的数据,Web浏览器会检查其他网站,以查看是否可以通过查找跨源头来发送请求。如果您想了解更多信息,可以查看the Wikipedia article或其他关于CORS(跨域资源共享)的网站。
我应该补充一点:您通常不想与其他任何人分享您的API密钥,因为这与您的帐户直接相关。您问题中URL的第一部分是您的用户名:密钥,这意味着发生这种情况的任何人都可以使用它来修改括号等。这实际上可能是为什么不允许使用CORS的原因;人们不应该从JavaScript发送这些请求,因为它需要共享他们的API密钥(用户与网页,或网站所有者与用户)。
您还需要小心地将任意文本回显到网页。我不知道卖家的参与者名称限制,但可能会导致cross-site scripting vulnerability。