我们有一个使用html5地理位置的页面,它似乎在今天早上停止为Firefox和谷歌Chrome的桌面用户工作,但IE9似乎仍然有效。如果我在无线笔记本电脑/设备上它工作正常。如果我使用以太网访问台式计算机,并尝试使用Firefox或谷歌浏览器,它会询问我是否要允许浏览器共享我的位置,然后单击是,浏览器不做任何事情。如果我用IE9做同样的事情,它会让我很好。昨天工作正常,似乎在美国东部时间凌晨1点左右停止工作。有什么想法或建议吗?
谢谢!
答案 0 :(得分:0)
这似乎是最新版Chrome(33.0.1750.154 m)的问题。它也开始发生在我身上。
Here's the documented issue.向下滚动到最新条目。
今天(18分钟前)
昨天Chrome版本33.0.1750.152上的地理定位工作正常。现在,navigator.geolocation.getCurrentPosition(successCallback,errorCallback)在localhost上运行时始终触发errorCallback。收到以下错误:PositionError {message:"网络位置提供商位于' https://www.googleapis.com/' :返回错误代码404。",代码:2,PERMISSION_DENIED:1,POSITION_UNAVAILABLE:2,TIMEOUT:3}。
答案 1 :(得分:0)
原因是,为了增强用户隐私,Google Chrome和大多数其他浏览器现在都需要SSL / TLS(http s ://,不 http:// )至少有一个自签名证书才允许getCurrentPosition
或watchCurrentPosition
返回任何结果。如果使用未加密的http://,则不会生成对用户可见的错误 - 它只返回空结果(某些浏览器可能在JavaScript调试控制台中指示“已阻止”错误,但这仅在开发人员工具中可见)。 Chrome是第一批做到这一点的人之一,但现在几乎所有现代浏览器都这样做了。
在您的服务器上安装免费的GetEncrypt证书(如果需要,可以使用电子商务等完整的证书),并至少在该页面上强制使用SSL,它应该可以使用。自签名只能用于测试目的,并会生成必须绕过的浏览器安全警报。