http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反



我有几个html文件(TiddlyWiki经典实例),它们存储在U盘上(为了保持可移动性,我通过file://协议打开它们)。我使用Ajax(通过SharedTiddlersPlugin,但这并不重要)将其中一些内容加载到其他内容中,效果很好。

我还使用localhost设置了几个TW(WAMP@Windows10和一个名为MicroTiddlyServer的简单保存服务器,最新版本可以在这里找到)。但是从localhost到文件以及从文件到localhost的"包含"(通过Ajax请求)不起作用。

因此,问题是哪些方式可以包含(使用JavaScript加载html的内容):

  1. 从文件到localhost?这意味着我在localhost上打开一个TW,并获取U盘上文件的内容(看起来是一个很大的安全问题,所以这更有可能是被禁止的,至少使用Ajax是这样,但可能有一些变通方法)
  2. 从localhost到文件?(我猜测通过CORS是可能的,但将Header set Access-Control-Allow-Origin "*"添加到Apache的httpd.conf<Directory ...>会阻止我的服务器(WAMP pack@Windows10)工作,并将包含Header set Access-Control-Allow-Origin "*"内容的.htaccess文件放入TW目录会导致Internal Server Error n The server encountered an internal error or misconfiguration and was unable to complete your request.
  3. 从远程服务器到文件?(我想这应该和2没有太大区别。除此之外,我通常不能配置服务器,因为我不是管理员;但是,由于我想使用TW作为RSS聚合器,让我在这里也包括这一点;这也将有助于在我的智能手机上包括from和TW,可以使用PHP服务器从那里提供服务;包括到智能手机上的TW需要本地主机->远程服务器,这似乎也是被禁止的)

我真的需要一些工作示例(不一定是TW,只是html文件),因为我有点迷失在所有CORS问题和教程中(后者是关于http的,而不是文件协议)。事实上,任何有效的解决方案(不一定通过Ajax)都可以满足以下条件:

  • 除了节省时间外,我的U盘在任何时候都可以移动
  • 服务器端部分也可以在Android上完成(PHP很好,Python也应该这样做,尽管我还没有测试它),服务器配置描述得很清楚(好吧,在我的情况下,这还不够清楚)
  • 包括保持异步

事实上,有很多方法描述了服务器,但使用file://有些不同(没有服务器可配置!)。

这个问题的主要目标是了解我是否必须创建一个服务器,一旦插入U盘,该服务器将在U盘上为TW提供服务,或者我可以以"主要是客户端"的方式实现所有三个目标(通过file协议打开TW)。但我也希望工作示例对其他人有帮助,因为这个主题似乎有点缺乏记录。

出于明显的安全原因,不允许这种行为。

从文件到localhost?这意味着我在localhost上打开一个TW,并在U盘上获取文件的内容(看起来是一个很大的安全问题,所以这更有可能是被禁止的,至少使用Ajax是这样,但可能有一些变通方法),

这是不允许的,因为您不能在html meta标记中使用Access-Control-Allow-Origin

从localhost到文件?

从远程服务器到文件?

事实上,这是一样的,有一个网络服务器,所以它是相同的机制。由于没有服务器会使用Access-Control-Allow-Origin标头进行响应,因此您无法访问file:// url。

是的,从服务器访问文件肯定是一个安全问题,但为什么从文件服务的html访问服务器是一个问题呢?

如果你能做到这一点,你可以通过双击文件资源管理器中的file.html将整个硬盘驱动器发送到网络上的任何地方。。。

访问您的内容的唯一方法是提供它,对不起。

相关内容