gpt4 book ai didi

javascript - 使用ajax和webservice下载文件

转载 作者:行者123 更新时间:2023-11-30 18:54:31 24 4
gpt4 key购买 nike

有这个第 3 方网络服务。可用的公共(public) Web 方法之一是 GetDocument() 方法。此方法返回一个文档对象。 Document 对象具有 File(byte[])、ContentType(string) 等属性。

我的问题:我可以使用 javascript(mootools) + ajax + JSON 订阅此服务,返回文档对象(在本例中为 excel 文档)并强制下载文件吗?

最佳答案

的确,通常您无法从 JavaScript 启动下载,但是有一个 flash 组件,Downloadify这确实启用了客户端文件生成。

因此您可以提供从 HTML/JavaScript 下载的文件。

解决了这个问题后,您仍然面临如何从源 Web 服务获取您希望提供的数据的问题。

第 3 方暗示 XSS(跨站点脚本),这是使用 XmlHttpRequest (Ajax) 的禁忌。

此问题的可能解决方案可能是使用常见的隐藏 IFrame 技术来获取数据。

只需拥有一个适当的(隐藏的?)表单,它可以正确地发布到 Web 服务,并将它的 action 指向一个隐藏的 IFrame 元素,您将在该元素上捕获 Load 事件并解析返回的数据。

但当前的浏览器具有不同级别的安全措施,这些措施限制了您使用外部源访问 IFrame 的能力,因此您实际上被困在这里。很抱歉让您抱有希望。

要完成您想做的事情,唯一切实可行的稳健方法是拥有一个本地服务器端脚本,它可以充当您的 HTML/JavaScript 和外部网络服务之间的代理。 p>

使用这样的代理,您可以简单地返回到使用 Ajax 来让您的数据为 Downloadify 提供服务。

但是,既然您使用的是服务器脚本来获取数据,为什么不直接从脚本提供数据以供下载呢?

这些只是我对您提出的问题领域的观察。

关于javascript - 使用ajax和webservice下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com