[英]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.