Javascript 尝试从公共api获取json数据时出错
我正试图从这个地址获取数据 当我遇到错误时,我写的代码是Javascript 尝试从公共api获取json数据时出错,javascript,async-await,fetch,Javascript,Async Await,Fetch,我正试图从这个地址获取数据 当我遇到错误时,我写的代码是 (function(){ async function GetCovidNumbers(){ const url = "api.opencovid.ca/summary?loc=canada&date=01-09-2020"; //debugger; const data = await fetch(url); const response = await data.json(
(function(){
async function GetCovidNumbers(){
const url = "api.opencovid.ca/summary?loc=canada&date=01-09-2020";
//debugger;
const data = await fetch(url);
const response = await data.json();
console.log(response);
}
GetCovidNumbers();
})()
我得到的错误是
一个是给我一个404错误,但是如果我把url放在浏览器中,那么我会得到数据,另一个错误是
未捕获(承诺中)语法错误:JSON中位置0处的意外标记<
我曾尝试在url前面添加http://甚至https://但都不起作用
所以我显然做错了什么,有人看到了吗?您需要指定协议(
http://
或https://
),否则,它将被视为相对URL
现在,我看到API不支持HTTPS。如果您的站点正在使用HTTP,这不是问题。但是,如果您的站点使用HTTPS,那么浏览器将阻止该请求,因为API不安全
在这种情况下,您可以使用HTTPS代理发出请求。就是这样一种服务
演示(加载需要几秒钟):
异步函数GetCovidNumbers(){
常数corsPrefix=”https://cors-anywhere.herokuapp.com/";
const url=corsPrefix+”http://api.opencovid.ca/summary?loc=canada&date=01-09-2020";
常量数据=等待获取(url);
const response=wait data.json();
控制台日志(响应);
}
GetCovidNumbers()代码>“我尝试在url前面添加http://甚至https://”好吧,你必须添加
http://
。否则,它将被视为相对URL,事实并非如此。我看到的另一个问题是API不支持HTTPS。如果您的站点使用的是HTTP,那就好了。否则,它将被浏览器阻止,因为API不安全。在这种情况下,您可能需要使用代理,例如@blex,是的,需要在任何地方使用CORS。如果你想把它作为一个答案和解释,那么我;我很乐意接受