API javascript不会返回结果

问题描述 投票:1回答:2

基于从@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>
javascript jquery json ajax
2个回答
0
投票

API可以正常工作,但是您不能像尝试那样通过URL传递身份验证,而是set the auth via headers。使用fetch for example看起来像:

fetch

正如其他人提到的那样,存在CORS问题,因此您需要从服务器/代理请求API。我通过Postman进行了尝试,并在注册后成功获得了API的响应。


-1
投票

运行您的代码片段,检查请求:未找到meteomatics.js,404,并且无提示失败...所以它也许是一个远程脚本,您应该填写URL?

var headers = new Headers();

headers.append('Authorization', 'Basic ' + btoa(username + ':' + password));
fetch("https://api.meteomatics.com/todayT05:00Z--today+2DT05:00Z:PT24H/wind_speed_10m:kmh/40.014994,-73.811646/json", {headers: headers})

关于请求本身,也许您应该使用JSONP请求,因为如果未设置CORS标头,则这是合理的选择。您可以启用JSONP将回调参数添加到url(在<script src="[**COMPLETE URL HERE**]meteomatics.js"></script> 处检查JSONP)

© www.soinside.com 2019 - 2024. All rights reserved.