使用角$ http调用Quandl API的CORS问题

时间:2016-05-20 06:41:47

标签: angularjs rest cors quandl

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

我的有角度的$ 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。对预检的反应   请求未通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:2992'因此是不允许的   访问。响应的HTTP状态代码为405。

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

有什么想法吗?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您是否检查过是否使用了正确的网址? Quandl为其API提供了不同的URL。见Quandl - How do I download a dataset using the API

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