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。如果你想把它作为一个答案和解释,那么我;我很乐意接受