Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用混合http和https协议的jQuery getJSON方法_Jquery_Json - Fatal编程技术网

使用混合http和https协议的jQuery getJSON方法

使用混合http和https协议的jQuery getJSON方法,jquery,json,Jquery,Json,所以现在我正在开发FCC本地天气应用程序,从我使用的天气API检索数据时遇到了一些困难。我决定使用黑暗天空API而不是建议的开放天气API来改变现状。这就是我到目前为止所做的: $(document).ready(function() { var lat, lon, city, api, temp, sum, windSpeed, percip; var apiKey = "##########################"; $.getJSON("http://ip-

所以现在我正在开发FCC本地天气应用程序,从我使用的天气API检索数据时遇到了一些困难。我决定使用黑暗天空API而不是建议的开放天气API来改变现状。这就是我到目前为止所做的:

    $(document).ready(function() {
  var lat, lon, city, api, temp, sum, windSpeed, percip;
  var apiKey = "##########################";

  $.getJSON("http://ip-api.com/json", function(data1) {

    lat = data1.lat;
    lon = data1.lon;
    city = data1.city;
    api = 'https://api.forecast.io/forecast/' + apiKey + '/' + lat + ',' + lon + '';

    $.getJSON(api, function(data2) {
      temp = data2.currently.temperature;
      sum = data2.currently.summary;
      windSpeed = data2.currently.windSpeed;
      percip = data2.currently.precipProbability;

      console.log(temp);

    });

  });

});
所以现在我可以让ip api向控制台输出在该调用中分配的任何变量。我的问题是,当我尝试检查任何变量值时,我无法获得对Dark Sky API的第二次调用以向控制台输出任何内容。也就是说,连接的api变量将返回我需要的JSON数据,但该方法似乎无法检索它

我试图在FCC gitter聊天中获得一些帮助,有人建议不要混合使用http和https协议,但是切换到相同的协议,不管是http还是https,都不会返回任何数据


我希望这是足够的信息。

您缺少的是
回调
查询。
api
变量定义中,添加
回调=?

请尝试以下操作。
api='1〕https://api.forecast.io/forecast/“+apiKey+”/“+lat+”,“+lon+”?回调=?”

测试
下面是JSFIDLE中的一个测试:

您能更清楚地解释一下问题是什么吗?控制台日志,或将其设置为可运行代码?没有看到函数中引入了
apiKey
。您只引入了
data1
@Esko我将apiKey定义为第一个.getJSON方法之前的唯一api键,但出于隐私原因,我将其从示例代码中排除。@Brianlmerrit的核心是我需要它能够运行,但是我想测试我是否可以从api中检索数据,这就是为什么我在那里有console.log行。@ChristianTodd-您仍然没有解释您的问题,也没有共享console日志。什么不起作用?是的!这正是我所需要的。非常感谢你。你能解释一下为什么在这种情况下我需要回调查询吗?@ChristianTodd-回调参数传递一个函数作为回调。如果使用,将使用异步HTTP调用,并且不会直接返回forecast对象,而是将其传递给回调函数。确保它可以接受它。查看JSONP:下面是一个示例
$。指定了
JSONP
的ajax
:。这里解释如何使用
JSONP
@ChristianTodd-如果您的问题已经得到回答,那么您将投票支持我的答案,并选择此作为您的问题答案,这样我就可以获得分数/学分。谢谢,对不起。我还没来得及投你一票,因为我还是个新手(