1

我在 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(强制下载),但也没有用。

沮丧,我开始用谷歌搜索,发现这个页面声称“保存到驱动器”按钮实际上不起作用。所以我回到官方的 Google Drive SDK 页面,发现他们的示例按钮也不起作用。这是一个噩梦吗?

来源: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>

来源: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>
4

1 回答 1

0

原始示例无法正常工作,因为Cache-Control服务器未公开标头。现在已修复。

Access-Control-Expose-Headers: Cache-Control, Content-Encoding, Content-Range

更多在文档中。

于 2013-07-18T14:20:43.507 回答