尝试通过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);
});
答案 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-encoded到q=London%2Cus
。使用params
属性正确编码参数。
我用我的APPID(我不打算发布)测试它并且它有效。
这是删除了APPID的DEMO on PLNKR。