不使用本地/网络服务器读取 xml

Reading xml with out using local/webserver

本文关键字:网络服务 服务器 读取 xml 网络      更新时间:2023-09-26

我是javascript的新手。我正在尝试从位于硬盘中的应用程序文件夹中读取 xml 文件。 "仅 HTTP 支持跨源请求",这是引发的错误。

如果我尝试通过本地服务器/Web 服务器访问相同的 xml 文件,它可以正常工作。因为我正在尝试开发离线应用程序。如何使其在本地工作。

谢谢

我可以想象你想要开发离线应用程序的几个原因:

如果你想要一个实际的在线应用程序,也可以离线工作(是否考虑到同步内容),请查看HTML5:http://diveintohtml5.info/offline.html

现在,如果你认为"我没有服务器端逻辑,所以我不需要服务器,但我仍然挖掘一个带有一些html UI的javascript应用程序",显然我们几乎都一度想到了在最近的Web导航器中看到令人惊叹的UI功能带来了智能API,所有这些都在本地运行并且绝对可移植。"好吧,所以我只需要一堆javascript文件,一些html和css,我给它任何xml/json/csv数据,这些数据在我的企业网络上的某个地方,在这里我不必在一个巨大的excel表中写下一些蹩脚的VBA,或者用Web服务器影响我的IT/IS, 和防火墙等,我可以部署强大的数据查看器和指示器等。

的意思是我确实对我说过这些话。而且我确实多次鄙视导航器的行为很好,直到我想获取数据,然后抱怨只是为了获取那些该死的数据!

但我不得不承认,网络导航器必须首先是可信的,要做到这一点,必须承诺只浏览一致的网络应用程序(安全行为通过安全数据的安全行为实现的安全逻辑),这意味着在某个地方设置一个有边界的沙箱。让应用程序只是"我计算机上的任何内容",同时连接到在导航器中运行的 www 太开放了,不可靠。

如果你想拥有导航器的html/css/javascript功能,只需使用Web导航器引擎(如webkit)。重要的是,最终它将是您自己的应用程序,您将能够做任何您想做的事情,但代价是必须解释您的 IS/IT 团队是无害的,因为您必须这样做。

或者,如果您努力认识到数据提供者已经是服务器的责任,请转到客户端服务器,手头有很多替代方案:

  • 你可以拥有通常的Apache(一些调试多合一包,如wamp在几分钟内就可以正常工作)
  • 你可以移动到一个全栈的Web服务器API(如Play!)来运行后台,并在它上面使用你喜欢的导航器(允许你在某个时候去网络),
  • 或者
  • 使用诸如nodeJS和Webkit之类的组合,或者具有多合一功能(例如 https://github.com/rogerwang/node-webkit)

与您的实际需求相比,我可能走得太远了:让该死的代码工作。为此,有许多关于本地文件"仅支持HTTP的跨源请求"的堆栈溢出问题的答案。

但这一次,我必须提出我的观点。希望它不会完全偏离轨道;)

这可能是由于您尝试访问的文件不在应用程序的沙盒环境中。

要分析的文件应驻留在应用可访问的位置。 桌面的用户配置文件/临时位置(文档/应用程序数据)就是这样的位置。 无法访问用户机器的整个文件结构。

http://blogs.adobe.com/asset/tag/sandbox

https://developer.apple.com/library/mac/documentation/security/conceptual/AppSandboxDesignGuide/DesigningYourSandbox/DesigningYourSandbox.html