从计算机javascript读取文件并打印console.log它不打印
Posted
技术标签:
【中文标题】从计算机javascript读取文件并打印console.log它不打印【英文标题】:read file from computer javascript and print console.log its not print 【发布时间】:2021-03-01 12:44:03 【问题描述】:当我将此代码调试到 chrome 控制台时,它不会显示任何输出或警报!请帮我完成这段代码!我需要将我的 read.txt 文件文本读取到 console.log.... 我尝试的代码如下所示。
function loadText()
fetch('C:\Windows\Temp\read.txt')
.then(function(response)
return response.text();
)
.then(function(data)
console.log(data);
alert(data)
)
.catch(function(error)
console.log(error);
alert(data)
)
【问题讨论】:
Chrome 控制台可能不允许您从(本地)文件系统读取文件。也许设置中有一个标志允许该选项。但是,允许 Chrome 控制台读取您的本地文件是一个很大的安全风险。恶意浏览器扩展可以利用这一点来访问他们不应该访问的文件。 当我禁用 chrome 网络安全时是否可行? 【参考方案1】:Try below code and indicate your directory like below
async function fetchText()
let response = await fetch('../demo.txt');
console.log(response.status); // 200
console.log(response.statusText); // OK
if (response.status === 200)
let data = await response.text();
console.log(data);
// handle data
fetchText();
【讨论】:
我试过这样但它得到错误!请帮忙.... 异步函数 fetchText() 让响应 = await fetch('C:\Windows\Temp\read.txt'); console.log(response.status); // 200 console.log(response.statusText); // OK if (response.status === 200) let data = await response.text();控制台.log(数据); // 处理数据 fetchText(); 将 C:\Windows\Temp\read.txt 更改为 ../../yourdirectory,它对我有用【参考方案2】:这似乎是这个问题的重复 - AJAX request to local file system not working in Chrome?
问题是一样的,但是您使用的是 fetch API (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) 而不是 XMLHttp 请求 (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest)
当我运行 loadText 时,出现以下错误:-
Fetch API 无法加载。对于 CORS 请求,URL 方案必须是“http”或“https”。
您无法在 Chrome 中向文件系统发出请求。但是,您可以使用标志禁用 Chrome 安全性 (--allow-file-access-from-files) 请参阅 - Allow Google Chrome to use XMLHttpRequest to load a URL from a local file 但不建议这样做。
您还需要通过添加前缀 file:/// 来更新 fetch 函数中的路径,这告诉它在文件系统中查找,并将协议从 http 或 https 更改。
【讨论】:
如果我禁用 chrome 网络安全时可能吗?以上是关于从计算机javascript读取文件并打印console.log它不打印的主要内容,如果未能解决你的问题,请参考以下文章