我在NodeJS中编写了一个简单的文件服务器来提供带有“保存到驱动器”按钮的HTML页面。 HTML页面在my_address:1337
投放,要保存的文件在my_address:1338
投放。点击“保存到云端硬盘”按钮后,它会长时间显示“正在开始下载”,然后显示Failed Download. XHR Error
。
我认为这是因为该文件是从不同的端口提供的,因此我决定使用appengine应用程序执行相同操作。在http://sayodrive.appspot.com/index.html投放的网页和http://sayodrive.appspot.com/drivefile.jsp投放的文件,我遇到了同样的问题。
然后我决定做一个本地Java Web应用程序:同样的问题。然后我尝试将内容处置更改为attachment
(以强制下载),但也无效。
感到沮丧,我开始谷歌搜索并遇到this page声称保存到云端硬盘按钮实际上无法正常工作。 所以我回到official Google Drive SDK page并发现他们的示例按钮也不起作用。 这是一个糟糕的梦想吗?
消息来源:index.html
<html>
<head>
<title>Test: Save To Drive</title>
<!-- -->
<link rel="canonical" href="http://sayodrive.appspot.com">
<script src="https://apis.google.com/js/plusone.js"></script>
</head>
<body>
<p>This must be the worst HTML you have ever seen :)</p>
<div class="g-savetodrive"
data-src="//http://sayodrive.appspot.com/drivefile.jsp"
data-filename="Test Drive"
data-sitename="Sayo Saves">
</div>
</body>
</html>
SOURCE:drivefile.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DriveFile</title>
</head>
<body>
<%
java.io.Writer w = response.getWriter();
response.setContentType("text/plain");
w.write("If you're reading this in Drive, congrats!");
w.flush();
w.close();
%>
</body>
</html>
答案 0 :(得分:0)
原始示例无法正常工作,因为服务器未公开Cache-Control
标头。现在已经修复了。
Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range
documentation中的更多内容。