1

我正在尝试从 Quandl ( https://www.quandl.com/data/YAHOO/MSFT.json ) 网站获取数据。它与所有浏览器和其他 REST 客户端(如 Postman)完美配合。

我的角度 $http 调用看起来很简单,我尝试了很多有或没有标题的组合。

$http({
        url: 'https://www.quandl.com/data/YAHOO/MSFT.json',
        method: "GET",
        headers: {
            "X-Content-Type-Options": "nosniff",
            "X-Frame-Options": "SAMEORIGIN",
            "X-Rack-CORS": "preflight-hit; no-origin"
        }
    })
    .then(res => {
        console.log(res);
    });

得到标准错误

XMLHttpRequest 无法加载 https://www.quandl.com/data/YAHOO/MSFT.json。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“ http://localhost:2992 ”。响应具有 HTTP 状态代码 405。

但是,供应商似乎支持 CORS http://help.quandl.com/article/280-does-the-quandl-api-support-cross-origin-resource-sharing-cors

有任何想法吗?

谢谢

4

2 回答 2

1

Quandl 在通过 API 请求数据时支持 CORS。您尝试使用的 URL 用于数据集的网页。要进行 API 调用,您所要做的就是找到该数据集的 Quandl 代码并将其传递给 API。

您可以在该页面的右上角找到 Quandl 代码(本例中为 YAHOO/MSFT)。因此,您的请求的适当 API 调用将是https://www.quandl.com/api/v3/datasets/YAHOO/MSFT.json

您可以在此处查看使用 Quandl API 的完整文档:https ://www.quandl.com/docs/api 。

于 2016-05-21T16:52:33.847 回答
0

您是否检查过您使用的网址是否正确?Quandl 为其 API 提出了一个不同的 URL。请参阅Quandl - 如何使用 API 下载数据集

您的网址应该是:https ://www.quandl.com/api/v3/datasets/YAHOO/MSFT-MSFT-Microsoft-Corporation.json

于 2016-05-20T06:54:59.337 回答