错误405& 401开放气象图API Angularjs

时间:2017-07-07 16:04:58

标签: angularjs openweathermap

尝试通过openweathermap api调用数据 如果我通过'GET'method.there

来称呼它
  

405(不允许的方法)

var req = {
    method: 'GET',
    url: 'http://api.openweathermap.org/data/2.5/forecast/daily?APPID=' + ApiKey + '&q=London,us',
    headers: {
        'x-api-key': ApiKey
    }
}

$http(req)
    .then(function (data) {
        console.log(data);
    }, function (err) {
        console.log(err);
    });

enter image description here

2 个答案:

答案 0 :(得分:1)

@faisal 我今天遇到了这个错误,经过一些调试后,我意识到这是因为我的配置文件中有$httpProvider.defaults.headers.common['X-Requested-With'] = 'HttpRequest';。我只是为了方便而禁用了CORS并解决了这个问题。

这个答案对我有帮助:Disable CORS in angularJS

答案 1 :(得分:0)

使用params属性对搜索参数进行编码:

var req = {
    method: 'GET',
    //url: 'http://api.openweathermap.org/data/2.5/forecast/daily?APPID=' + ApiKey + '&q=London,us',
    url: 'http://api.openweathermap.org/data/2.5/forecast/daily',
    params: { appid: ApiKey, q: 'London,us' }
}

问题可能是&q=London,us是非法的。逗号字符必须为percent-encodedq=London%2Cus。使用params属性正确编码参数。

更新

我用我的APPID(我不打算发布)测试它并且它有效。

这是删除了APPID的DEMO on PLNKR