使用local / webserver读取xml

时间:2013-10-25 07:22:14

标签: javascript xml xml-parsing xmlreader

我是javascript的新手。我正在尝试从应用程序文件夹中读取xml文件,该文件夹位于硬盘中。 “只有HTTP支持跨源请求。”这是抛出的错误。

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

谢谢,

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

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

  • 你可以拥有通常的Apache(一些调试一体化软件包,比如wamp在几分钟内就能正常工作)
  • 您可以转移到全栈Web服务器API(例如Play!)来运行后台并在其上使用您首选的导航器(允许您在某个时间点上网),
  • 或使用nodejs和webkit之类的组合,或者使用一体化(例如https://github.com/rogerwang/node-webkit

与你的实际需求相比,我可能走得太远了:让该死的代码工作。关于本地文件的堆栈溢出有许多已回答的问题“只支持HTTP的交叉源请求”。

但这次我必须说明我的观点。希望它不是完全偏离轨道;)

答案 1 :(得分:0)

这可能是由于您尝试访问的文件超出了应用程序的沙箱环境。

您要解析的文件应位于应用可访问的位置。桌面的用户个人资料/临时位置(文档/应用数据)就是这样的位置。您无法访问用户计算机的整个文件结构。

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

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