javascript - $.getJSON 和 $.ajax 无法返回 JSON 对象

标签 javascript jquery json ajax api

我正在 freecodecamp.com 上进行“本地天气”前端开发挑战,但在对某些天气 API 进行 API 调用时遇到了一些问题。挑战在于获取用户的位置,然后调用天气 API 以显示其所在区域的天气。我尝试过使用 Dark Sky APIOpenWeatherMap API ,但他们都没有返回任何内容。我可以将两个 API 链接放入浏览器中,它们都会显示我需要的信息,但是当我将它们放入 JavaScript 中时,它们无法返回信息。这是我当前对 $.ajax 和 Dark Sky API 的尝试:

$(document).ready(function() {

  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function (position) {
    
      var lat = position.coords.latitude;
      var long = position.coords.longitude;
 
  
    
     //$("#loc").html(lat + " " + long);
 
      $.ajax({
        url: "https://api.darksky.net/forecast/96dd30a49debe62a67b208f705e3d706/" + lat + "," + long,
        success: function(json) {
          $("#loc").html("Your location: " + json.latitude + "," + json.longitude);
          $("#temp").html("Temperature: " + json.currently.temperature);
          $("#fc").html("Test " + json.minutely.summary);
        },
    
        error: function(xhr, status, error) {
          console.log("error", status, xhr, error);
        }    
    });
  });
  }
});

提前致谢!

最佳答案

这应该是 CORS 错误

使用dataType:“JSONP”使其工作

一个有效的 JSFiddle 示例 here

参见What is JSONP All about了解更多信息

关于javascript - $.getJSON 和 $.ajax 无法返回 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44507915/

相关文章:

javascript - jQuery 在变量中保存 css 背景颜色

javascript - 当 OnClientClick 返回 False 时,防止 LinkBut​​ton 触发 OnClick

javascript - 在html文本框中显示反斜杠

php - 在ajax post mysql上形成序列化非法字符串偏移量 ''

javascript - 如何使用 Three.JS 绘制 n 边区域

javascript - 导出到 Excel/打印带网格线的 HTML 表格

javascript - 将字符串解析为时间格式 JavaScript

javascript - 如何填充嵌套虚拟?

javascript - JavaScript 中的 API 调用

javascript - 将多个数组转换为单个 JSON