【问题标题】:nfl data API errorNFL 数据 API 错误
【发布时间】:2014-03-08 22:04:19
【问题描述】:

我正在尝试使用 NFL 数据 API 解析少量数据。抓住当前季节。

例如: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> 

错误详情:

这是一个错误对话框弹出窗口。 “错误”控制台报告:XMLHttpRequest 无法加载 http://api.nfldata.apiphany.com/premium/XML/CurrentSeason?key=XXXXXXXXXXX。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://www.sample.com' 不允许访问。 currentseason.html:1

【问题讨论】:

  • 什么错误?如果您不解释问题,我们将无能为力。
  • 我很欣赏你的坦率,斯蒂芬。我更新了我的问题。
  • 如错误所示,您违反了同源政策
  • 顺便说一句,我编辑了您的问题以删除您的高级 API 密钥。大概您不希望将其发布在公共网站上。

标签: javascript api


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多