【发布时间】:2013-03-02 19:46:25
【问题描述】:
我想从服务器向GET 发出AJAX 请求一些数据。然后我想提示客户将此数据保存在他/她的计算机上,以便以后可以在浏览器会话之外访问。这个保存功能是否可以通过 JavaScript 实现,或者我需要使用 Flash 库吗?我可以使用 URI 在本地执行此操作吗?我可以使用 HTML5 的本地存储吗?
【问题讨论】:
标签: javascript ajax html save client-side
我想从服务器向GET 发出AJAX 请求一些数据。然后我想提示客户将此数据保存在他/她的计算机上,以便以后可以在浏览器会话之外访问。这个保存功能是否可以通过 JavaScript 实现,或者我需要使用 Flash 库吗?我可以使用 URI 在本地执行此操作吗?我可以使用 HTML5 的本地存储吗?
【问题讨论】:
标签: javascript ajax html save client-side
一旦数据在客户端,如果没有像 Flash 这样的插件,Javascript 就无法将其保存在本地。 HTML5 有download 属性,可以解决所有这些问题,但它对[2013-03-02] 的支持很少。
相反,您可以做的是在客户端上构建数据,然后将数据保存在服务器上作为文件直接作为附件下载。您需要使用 HTTP 标头 Content-Disposition 来执行此操作。
这是一个 PHP 示例。
<?php
header('Content-Type: text/plain');
header('Content-Disposition: attachment; filename=data');
echo $_POST['data'];?>
<!-- language: lang-html -->
<form action="http://thinkingstiff.com/stackoverflow/download.php" method="POST">
Data to save: <input name="data" type="text" />
<button>download</button>
</form>
【讨论】:
download 属性来解决这一切,但它还没有支持。