nfl数据API错误

时间:2014-03-08 22:04:20

标签: javascript api

我尝试使用NFL数据API解析一小部分数据。抓住现在的季节。

EG:http://developer.fantasydata.com/docs/services/300/operations/1114/console

我使用直接在该页面上提供的示例JavaScript代码,使用有效的高级API密钥,并且我收到了错误对话框。任何一个熟悉的人?

<!DOCTYPE html> 
<html> 
<head> 
<title>JSSample</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
    $(function() { 
        var params = { 
            // Specify your developer key 
            key: '1234actualkeyisrighthere', 
        }; 

        $.ajax({ 
            // Specify values for path parameters (shown as {...}) 
            url: 'http://api.nfldata.apiphany.com/premium/XML/CurrentSeason?' + $.param(params), 
            type: 'GET', 
            beforeSend: function (xhr) { 
                debugger; 
            } 
        }) 
        .done(function(data) { 
            alert("success"); 
        }) 
        .fail(function() { 
            alert("error"); 
        }); 
    }); 
</script> 
</body> 
</html> 

错误详细信息:

弹出错误对话框。 &#39;错误&#39;控制台报告:XMLHttpRequest无法加载http://api.nfldata.apiphany.com/premium/XML/CurrentSeason?key=XXXXXXXXXXX。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; http://www.sample.com&#39;因此不允许访问。 currentseason.html:1

1 个答案:

答案 0 :(得分:2)

看起来你运气不好。服务器未启用跨源请求(如错误消息所示)。而且,至少在我通过他们的文档进行的简短搜索中,他们似乎并不支持JSONP。您可以通过尝试来查看是否存在对JSONP的无证支持。您必须猜测回调查询字符串参数名称,尽管许多网站使用callback,这就是我尝试的内容。

OTOH,您可能无论如何都不会在浏览器中实现此调用,因为这会将您的高级API密钥暴露给您网站的任何用户。最有可能的是,NFL服务器希望您通过自己的服务器代理数据。在该架构中,CORS不会成为问题。