Codepen中的相同代码给出了不同的结果

时间:2016-05-22 07:36:02

标签: javascript jquery web

我有这支笔:https://codepen.io/dteiml/full/PNMwZo,其中包含以下javascript代码:

$('#getWeather').on('click', function() {
navigator.geolocation.getCurrentPosition(success);

function success(pos){
  // get longitude and latitude from the position object passed in
  var lng = pos.coords.longitude;
  var lat = pos.coords.latitude;
  // and presto, we have the device's location!
  console.log("test");
  $('body').html('You appear to be at longitude: ' + lng + ' and latitude: ' + lat);

}

                 });

和html代码:

<button id="getWeather">
Get my location
</button>
<body>
</body>

我从一个有效的人和一个我自己创建的人http://codepen.io/dteiml/full/aNevrE中分配了相同的代码和设置,但这些代码和设置并不起作用。可能是什么问题?

3 个答案:

答案 0 :(得分:2)

如果你检查了错误控制台,它就会准确地解释出差异是什么:

https vs http

  

pen.js:3 getCurrentPosition()和watchPosition()在不安全的起源上被弃用。要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS。有关详细信息,请参阅[编辑]。

(很抱歉,由于链接的原因,我无法完全按照给出的答案发布。)

答案 1 :(得分:1)

您必须使用https://而不是http:// google不接受来自http协议的请求。

答案 2 :(得分:0)

将您的codepen切换到https://codepen.io/dteiml/full/aNevrE,它应该可以正常工作。

这是警告:

  在不安全的情况下,不推荐使用

getCurrentPosition()和watchPosition()   起源。要使用此功能,您应该考虑切换您的   应用程序到安全源,例如HTTPS。

code