在Google应用引擎blobstore下载器中启用CORS

时间:2013-08-21 10:06:25

标签: python google-app-engine

我正在使用“send_blob”从谷歌应用引擎blobstore下载pdf。我如何为此启用CORS?我尝试添加

self.response.headers.add_header("Access-Control-Allow-Origin", "*")

到我调用send_blob的函数,但它不起作用。

2 个答案:

答案 0 :(得分:2)

中找到解决方案

http://enable-cors.org/server_appengine.html

为blobstore下载处理程序添加了basehandler。

答案 1 :(得分:2)

App Engine上的CORS 对于Google App Engine中基于Python的应用程序,可以使用self.response.headers.add_header()方法,例如:

class CORSEnabledHandler(webapp.RequestHandler):
  def get(self):
  self.response.headers.add_header("Access-Control-Allow-Origin", "*")
  self.response.headers['Content-Type'] = 'text/csv'
  self.response.out.write(self.dump_csv())

对于基于Java的应用程序,请使用resp.addHeader():

public void doGet(HttpServletRequest req, HttpServletResponse resp) {
  resp.addHeader("Access-Control-Allow-Origin", "*");
  resp.addHeader("Content-Type", "text/csv");
  resp.getWriter().append(csvString);
}

对于基于Go的应用程序,请使用w.Header()。Add():

func doGet(w http.ResponseWriter, r *http.Request) {
  w.Header().Add("Access-Control-Allow-Origin", "*")
  w.Header().Add("Content-Type", "text/csv")
  fmt.Fprintf(w, csvData)
}