Javascript 需要在本地运行html文件时使用axios的想法(例如浏览器中的file://path)

Javascript 需要在本地运行html文件时使用axios的想法(例如浏览器中的file://path),javascript,Javascript,目标是拥有一个可以直接打开的.html文件(例如,以file://path-to-file.../file.html 在Chrome浏览器中) 它们是/user json文件夹,用户可以在其中放入自己的.json文件,.html文件加载json数据 我目前正在使用axios a)查找/user json目录中的所有文件,然后b)将它们加载到javascript中使用 问题是CORS/浏览器由于安全策略而阻止了这些axios请求 一种解决方法是使用——允许从文件访问文件,但我想为任何人提供一种简单

目标是拥有一个可以直接打开的.html文件(例如,以file://path-to-file.../file.html 在Chrome浏览器中)

它们是/user json文件夹,用户可以在其中放入自己的.json文件,.html文件加载json数据

我目前正在使用axios a)查找/user json目录中的所有文件,然后b)将它们加载到javascript中使用

问题是CORS/浏览器由于安全策略而阻止了这些axios请求

一种解决方法是使用——允许从文件访问文件,但我想为任何人提供一种简单的方法,让他们将自己的“用户json”数据放入/user json文件夹,并让.html检测并加载它,而无需使用他们的chrome浏览器设置,甚至运行web服务器


有什么办法让这项工作或替代方法?请不要建议在服务器上运行文件,因为我没有这个选项-我正在寻找一种方法,用户可以提供自己的文件,本地打开的.html文件可以检测并加载这些文件。

有很多方法可以做到这一点。这主要是选择你最喜欢的抽象概念的问题

最简单的方法是利用像这样的服务。尽管这当然不是最健壮的解决方案,而且如果您关心代码的美学,它可能不会吸引您(注意:存在一个问题)

或者,如果你想拥有自己的解决方案,你可以创建一个免费的实例,比如;他们甚至有一个例子来说明如何实现你的目标

通过nginx传递您的请求也是可能的,而且可以说更加简洁和高效

不管你怎么做,你都必须通过某种代理来路由你的请求,因为一个股票浏览器是不会切断它的


一路顺风。

通过从
文件:
url打开页面,您牺牲了很多功能,包括这一功能。如果没有安全性的页面可以打开任何文件,页面也可以在任何地方传输任何文件。我理解为什么有安全措施到位,但我要问的是为本地打开的HTML加载内容的方法-纯粹是为了不需要通过HTTP协议或类似的方式访问,正如你所发现的,由于安全原因,答案是否定的。我在这里的解决方案是使用“预期”的javascript文件作为添加用户添加数据的方式。我不相信如果文件在本地打开,CORS Anywhere会起作用-似乎仍然需要http协议或类似协议。我不想主持一个解决方案,不,因为这不是那种类型的项目-它意味着在您的机器上本地接收后打开。我意识到用axios加载无法实现我想要实现的目标,但还有其他方法吗?既然我们不能发出请求,那么如果只是打开了预编译的JS文件呢?我认为这可能是我能想到的唯一方法,即使这样,我也需要在这个用例中测试它是如何工作的。缺少更多的上下文,对我来说,与您进行更多的讨论是一个挑战。我知道chrome扩展提供了一个API来访问本地文件系统,但这只适用于您预定义的文件路径,因为您提前知道它们;您还可以访问扩展的根目录。。总而言之,有一些非常雄心勃勃和全面的扩展。不过,实际上,这听起来像是为一个比浏览器更靠近文件系统的工具而设计的工作。电子?确实是电子!如果可能的话,我想避开这一点,但我现在正朝着这个方向倾斜。这纯粹是出于可移植性的原因——将html文件下载到手机上非常容易。不需要“安装”应用程序或任何东西。我的一个想法是:a)创建一个“user-addon-1.js”文件和“user-addon-2.js”文件。b) 用户使用我的应用程序创建“user-addon-1.js”文件并替换它,c)让html文件已经尝试加载“user-addon-1.js”和“user-addon-2.js”等等。。。这有点难看,但我相信应该管用