首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >气象API (RESTful)出错

气象API (RESTful)出错
EN

Stack Overflow用户
提问于 2016-07-12 07:50:52
回答 1查看 17.2K关注 0票数 3

我正在使用一个简单的web来获取伦敦金融城( city )的天气细节。但是,我没有得到所需的响应,而是一个401错误。我做错什么了吗?

代码语言:javascript
复制
<html> 
<head> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script>
$(document).ready(function(){
    $('button').click(function(){
        $.ajax({
            type: "get",
            url: "http://api.openweathermap.org/data/2.5/weather?q=London",
            dataType: "json",
            contentType: 'application/json',
            success: function(data) {
                    //What to do on success 
            }
        });
    });
});
</script> 
</head> 

<body>
    <button>Click Me</button>
</body> 

</html> 

使用以下api

http://openweathermap.org/current

误差

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-12 08:59:58

您需要将键作为查询字符串添加到天气api的URL中。

您可以添加一个小函数来完成这个任务:

代码语言:javascript
复制
var url = 'http://api.openweathermap.org/data/2.5/forecast/city';
var keys = {
    id: 524901,
    APPID: 12345 // Put your key here
}; 

function makeUrl (url, queryStringObject) {
    var query = [];
    // Loops through each key
    for(var key in queryStringObject){
        query.push(encodeURIComponent(key) + '=' +
            encodeURIComponent(queryStringObject[key]));
    }
    // Returns the url with the keys appended
    return url + (query.length ? '?' + query.join('&') : '');
}

这将返回api所需格式的密钥:

代码语言:javascript
复制
http://api.openweathermap.org/data/2.5/forecast/city?id=524901&APPID=12345 

然后,在调用api时,可以使用函数调用:

代码语言:javascript
复制
$(document).ready(function(){
    $('button').click(function(){
        $.ajax({
            type: "get",
            url: makeUrl(url, keys), // Gets the constructed url
            dataType: "json",
            contentType: 'application/json',
            success: function(data) {
                    //What to do on success 
            }
        });
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38322949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档