如何在请求用户位置后使用JS和jQuery获取JSON

时间:2017-06-22 21:07:22

标签: javascript jquery json api global-variables

我已经坚持这个安静了一下。我知道"建立一个天气应用程序"问题已被问过几次,但这主要不是我正在努力解决的问题。 我正在尝试编写一个脚本来获取用户/计算机的位置,并将这些脚本带到外部网站(openweathermap.org)以获取特定位置的JSON。它完美地完成了这一点:

<html>
    <head>
        <meta charset="utf-8">
        <title>Weather App</title>
        <link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Arimo:400,700">
        <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script>
            $(document).ready(function() {
                $("#click").click(function() {
                    if(navigator.geolocation) {
                        navigator.geolocation.getCurrentPosition(function(position) {
                            $("#message").text("lat: " + position.coords.latitude + " and long: " + position.coords.longitude);
                        });
                    }
                });

            });
        </script>
    </head>
    <body>
        <div>
            <button id="click" ">Get Location</button>
        </div>  
        <div id = "message">
            Message goes here
        </div>
    </body>
</html>

我的网站上显示longitudelatitude。但是,如果我将脚本更改为:

<script>
    $(document).ready(function() {
        $("#click").click(function() {
            if(navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function(position) {
                    $.getJSON("api.openweathermap.org/data/2.5/weather?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude, function(json) {
                        $("#message").html(JSON.stringify(json));
                    });
                });
            }
        });

    });
</script>

不再有用了。我仍然不安全使用这种JS / jQuery,所以这里是我的问题:  1.更常见的是:我使用的符号(点击处理程序,$ -sign)或getElementByx.innerHTML编码(我显然不知道这两个东西是如何被调用但我希望你意思)?  2.我试图在var lat = position.coords.latitude函数(在早期版本中)中定义变量var long = position.coords.longitudenavigator,但似乎我可以在该函数中使用它们甚至更难以使用它们。在该功能之外定义 - 为什么?  3.当我尝试插入我想从中获取JSON的链接时 - 似乎有一些非常错误的东西。我使用apihttp://apihttps://https://apihttp://www.进行了尝试,但似乎没有任何效果。如果我没有获得latlong权利,我甚至尝试了一些具体的价值 - 没有成功。为什么?如何正确设置链接?最后我的appid也丢失了,因为如果点击演示链接,它看起来更像是:http://samples.openweathermap.org/data/2.5/weather?lat=35&lon=139&appid=b1b15e88fa7024532541123439c1c50c122a1

我认为这是暂时的。任何帮助深表感谢。谢谢,伙计们!

0 个答案:

没有答案