繁体   English   中英

FRED API的HTTP GET请求跨域错误

[英]HTTP GET request cross-origin error for FRED API

我只是试图使用get请求从FRED API中获取数据。 我不断收到“所请求的资源上没有Access-Control-Allow-Origin标头。原始null是否不允许访问”。我查看了所有API文档,并且没有引用get请求所需的任何其他内容。我可以在现有代码中添加特定的行项目来满足此“ Access-Control-Allow-Origin”标头要求吗?您能否举例说明这些行的外观?有效的API密钥。谢谢

  <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script>

function httpGet(theUrl)
{
    var xmlHttp = null;

    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", "http://api.stlouisfed.org/fred/releases/dates?api_key=1cee0e87e5e3362716028352d3d1c160", false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}
</script>



</head>

<body>
<button onclick="httpGet()">http GET</button>

</body>
</html>

你发挥httpGet使用跨域请求,如果域名并没有stlouisfed.org 因此,如果API响应没有Access-Control-Allow-Origin: *标头,则所有请求都将失败。 据我了解, FRED API仅由桌面程序使用,而不由Web应用程序使用。

但是有iframe transport可以规避这一点。 我创建了html jsfiddle ,您可以在其中按下按钮并在iframe查看API结果。 但是我在这个jsshell网站中遇到iframe onload事件的问题-它总是坏掉的。 您可以在代码中添加iframe.onload以获得API的答案,然后表单将更改iframe。

我查看了所有API文档,但没有引用get请求所需的任何其他内容。

他们的文档并非特定于浏览器中运行的JavaScript。

我可以在现有代码中添加特定的行项目来满足此“ Access-Control-Allow-Origin”标头要求吗?

否。您需要从服务器发出请求。

您能否举例说明这些行的外观? 我在代码中包含了有效的API密钥。

您的API密钥应保持秘密(这是不直接使用客户端JavaScript这样做的任何其他原因)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM