我正在使用openweather api创建天气应用程序,但是我的提取api调用无法正常工作。我的api调用在浏览器中有效,但在我的代码中无效。
handleSubmit(){
var city = this.state.city;
var url = 'api.apixu.com/v1/current.json?key=67deb752d27d411a9ac101935181007&q=' + city;
console.log(url);
fetch(url, {
method: 'GET',
mode: "no-cors",
headers: { 'Content-Type': 'application/json' }
}).then((res) => {
var resJson = JSON.parse(res);
console.log(resJson);
return resJson;
}).then((resJson) => {
}).catch((err) => {
console.log("error");
});
}
答案 0 :(得分:2)
您的URL错误。
var url = 'api.apixu.com...
您忘记了该方案(https://
或该方案的开头)。
您说mode: "no-cors"
的意思是
我想发出此HTTP请求,但是我不会做任何需要许可的事情,所以不要请求许可,不要做任何需要许可的事情,如果发生以下情况也不要抛出错误我没有许可
从其他来源读取数据需要获得许可。既然您说过您不想要许可,那么您就无法读取数据,并且它会以静默方式失败。
删除mode: "no-cors"
。请改用mode: "cors"
。
答案 1 :(得分:2)
我遇到了同样的问题,唯一对我有用的是将我的请求发送到代理服务器。
此重定向也不起作用:
const baseUrl = 'https://cors-anywhere.herokuapp.com'
解决此问题很长时间后,我将响应重定向到另一个网站,终于可以工作了。
const App = () => {
....
const baseUrl = 'https://thingproxy.freeboard.io/fetch/';