【发布时间】:2020-04-22 23:51:09
【问题描述】:
根据从@rkosegi 获得的帮助,我尝试通过 js.fiddle 运行我的页面和 javascript 进行测试,但无法在测试页面上显示任何结果。当我在 MS Edge 中运行页面检查时,我没有收到任何错误。
我检查并再次检查,但找不到阻止数据显示的错误。我错过了什么?
$.getJSON("https://<username>:<password>@api.meteomatics.com/todayT05:00Z--today+2DT05:00Z:PT24H/wind_speed_10m:kmh/40.014994,-73.811646/json",
function(data) {
console.log(data);
var mtwnsd24 = data.data[0].coordinates[0].dates[1].value;
$(".mtwnsd24").append(mtwnsd24);
});
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta charset="utf-8" />
<title>API TEST</title>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-
WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="meteomatics.js"></script>
</head>
<body>
<p class="mtwnsd24"></p>
</body>
【问题讨论】:
-
当我访问该链接时,它要求进行身份验证。您是否提供了身份验证、API 密钥或其他内容?
-
对不起,我最初省略了。我已将用户 ID 和密钥放回上面的脚本中。
-
您可以在任何浏览器提供的开发者控制台中的network tab中查看请求状态。
-
看起来数据源不允许 CORS 访问:CORS 策略已阻止来自源“null”的“usr:passwd@api.meteomatics.com/…”处的 XMLHttpRequest 访问:没有“Access-Control-Allow-Origin” ' 请求的资源上存在标头。
-
一般来说,需要 API 密钥的 API 不允许直接从浏览器使用,因为这样用户可以获得您的密钥。您必须从服务器调用 API。
标签: javascript jquery json ajax