我试图fetch
在本地主机上使用,但没有用。
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
fetch("hi.txt").then(function(response){
response.text().then(function(text){
alert(text)
})
})
</script>
</body>
</html>
hi.txt 文件与脚本文件在同一文件夹中。
以下错误显示在控制台中:
index.html:12 Fetch API cannot load file:///C:/~~~~/hi.txt. URL scheme "file" is not supported.
(~~~) 是路径
由于您的 URL 是相对的(它只是"hi.txt"
),因此它会根据运行代码的页面的 URL 进行解析。在您的情况下,这似乎是file:///something
- 也就是说,您直接从文件系统加载的文件,而不是通过从服务器请求它。Chrome 不允许从file
方案中获取。该file
方案的起源是null
。Chrome 团队对同源政策的解释是,没有任何来源,甚至它本身,都不应该匹配null
。(我认为这是合理的解释,但意见可能会有所不同。)
在进行 Web 开发时,您希望通过服务器进程工作,因为直接从文件系统加载的页面与从服务器加载的页面在一些有时微妙的方式上表现不同。
有几种方法可以做到这一点:
npm
(和 Node.js)为您设置简单的项目,并带有一个命令,您可以使用该命令在开发模式下在本地构建和运行项目。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句