Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何解决此错误;URL方案必须为";http「;或;https";对于CORS请求。”;对于此代码_Javascript_Promise_Fetch - Fatal编程技术网

Javascript 如何解决此错误;URL方案必须为";http「;或;https";对于CORS请求。”;对于此代码

Javascript 如何解决此错误;URL方案必须为";http「;或;https";对于CORS请求。”;对于此代码,javascript,promise,fetch,Javascript,Promise,Fetch,它在控制台中显示以下消息 js:1无法加载获取API file:///C:/Users/Lizzi/Desktop/novice%20to%20ninja/todos/luigi.json. 对于CORS请求,URL方案必须为“http”或“https” 我不熟悉aynchronouse编程,但我已经阅读了CORS解决方案,并尝试了一些方法,比如获得chrome扩展和禁用我的谷歌chrome的网络安全,但仍然不起作用 fetch('todos/luigi.json').then((respons

它在
控制台中显示以下消息

js:1无法加载获取API file:///C:/Users/Lizzi/Desktop/novice%20to%20ninja/todos/luigi.json. 对于CORS请求,URL方案必须为“http”或“https”

我不熟悉
aynchronouse
编程,但我已经阅读了
CORS
解决方案,并尝试了一些方法,比如获得chrome扩展和禁用我的谷歌chrome的网络安全,但仍然不起作用

fetch('todos/luigi.json').then((response)=>{
  console.log('resolved',response);
}).catch((err)=>{
    console.log('rejected', err);
});

您需要在本地为index.html提供服务,或者将站点托管在某个实时服务器上,以便Fetch API正常工作。这些文件需要使用http或https协议提供服务

如果您刚从文件资源管理器中单击index.html,则浏览器会直接从文件系统中获取这些文件。这就是为什么错误会显示计算机上根文件夹的绝对路径

尝试安装其中一个。。。 -npm发球 -Live server(如果您使用的是Visual Studio代码的扩展)

或者与您的环境一起工作的任何服务器


一旦你启动了一个服务器,应该可以正常工作:)快乐的编码

你试过在fetch中使用完整的url吗?“为我的google chrome禁用web安全”不要这样做,如果你在浏览器中执行任何其他操作,它会带来巨大的风险。无论如何:您不能从本地文件向其他本地文件发出Fetch/XHR请求,因此您需要以某种方式启动本地服务器,可以使用(
python-mhttp.server
)或者,例如,如何启动?确保url方案是
http
https
——答案在错误中,只要您只是在玩fetch,您可以临时禁用CORS。看看这个傻瓜是怎么做的。但是,始终确保在测试后重新启用它(重新启动浏览器)。从长远来看,托管一个小型测试服务器(本地或远程)可能是一个好主意。它可以使用完整的url。如果已启用
文件://
requests@Hashbrown如何做到这一点?@Hashbrown如何启用文件://request?@YingStyle由Hashbrown链接的答案解释了这一点。Fetch不支持Chrome上的
file://
,但他发布了一个解决方案,因为XMLHttpRequest可以工作(如果您允许从文件访问文件)。顺便说一句:如果您在
about:config
visualstudio代码中设置了
privacy.file\u unique\u origin=false,Firefox允许
file://
带fetch。而且它有效!您需要安装LiveServer扩展,然后右键单击您的HTML文件以运行并访问类似localhost:5500的页面