为什么navigator.geolocation.getCurrentPostion被阻止?

时间:2015-09-23 23:56:09

标签: javascript geolocation

我根本没有改变我的代码。它工作了好几天然后突然成功回调函数navigator.geolocation.getCurrentPosition停止运行。

我的代码是:

if(navigator.geolocation){
   alert("you have geolocation");
   navigator.geolocation.getCurrentPostion(function(pos){
     alert(pos.coords.longitude);
   });
}

开发者控制台给了我这个错误:

Uncaught SecurityError: Blocked a frame with origin "http://s.codepen.io" from accessing a frame with origin "http://codepen.io". Protocols, domains, and ports must match.

我正在使用codepen作为我的编辑器,我认为问题出在他们的最后,因为这是我已经使用了几天的代码并且它一直工作正常。

1 个答案:

答案 0 :(得分:2)

正如控制台错误所述,问题是您尝试跨2个不同的域发出请求(请注意http://s.codepen.io中的子域名。)

虽然'问题在于他们的结尾'并不完全正确(这对于codepen而言不是问题),但是你无法解决这个问题。您完全受到codepen基础架构的支配,他们可以随心所欲地使用它。

最终,您不应该将codepen用作此类事件的开发环境。有许多免费的编辑器可以让你在本地开发和测试。