google-app-engine - Google Cloud Storage - 使用 XMLHttpRequest 直接上传会导致 "Access-Control-Allow-Origin"-error

标签 google-app-engine gwt xmlhttprequest cors google-cloud-storage

我的以下问题使用了:Java、GWT、jQuery、App Engine (GAE)。

关于“Access-Control-Allow-Origin”-header 有很多问题,但似乎没有什么是我想要的。

我正在尝试使用 POST Object 将文件上传到 Google Cloud Storage .如果我只是使用 html 表单实际进行上传,这就可以正常工作。但是,一旦我尝试使用 XMLHttpRequest 发出完全相同的请求,我就会收到错误消息“请求的资源上不存在‘Access-Control-Allow-Origin’ header ”。我关注了setup CORS for a bucket -指导。我的 CORS xml 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<CorsConfig>
  <Cors>
    <Origins>
      <Origin>*</Origin>
    </Origins>
    <Methods>
      <Method>GET</Method>
      <Method>POST</Method>
      <Method>HEAD</Method>
      <Method>DELETE</Method>
      <Method>OPTIONS</Method>
    </Methods>
    <ResponseHeaders>
      <ResponseHeader>x-goog-meta-foo1</ResponseHeader>
    </ResponseHeaders>
    <MaxAgeSec>1800</MaxAgeSec>
  </Cors>
</CorsConfig>

那么我为什么要使用 XMLHttpRequest?这是因为我希望能够在将文件上传到 Google Cloud Storage (GCS) 时进行上传。我不确定我是否在某处犯了一些错误,或者在上传到 GCS 时是否有上传进度。但据我所知,这应该没有限制,因为上传进度不是基于与 GCS 的通信(上传速度除外)。

我已经强行清理了我的缓存,但这并没有帮助! :(

有什么建议吗?

谢谢!

最佳答案

我真的不喜欢回答自己的问题,因为在我提问之前似乎没有做足够的研究。但我真的做到了,在我问这个问题之前,我确实尝试了 1.5 天的一切。

问题出在 CORS xml 文件中的一行:

<ResponseHeader>x-goog-meta-foo1</ResponseHeader>

应替换为:

<ResponseHeader>*</ResponseHeader>

我真的不认为这会有什么不同,因为我假设“Access-Control-Allow-Origin”-header 将作为默认发送,因为这就是我进行此设置和 docs 的原因没有提及任何相关内容。我确实有点明白 x-goog-meta-foo1 是一个例子,但并不是说如果使用它会破坏设置(谷歌,请更新文档)。

关于google-app-engine - Google Cloud Storage - 使用 XMLHttpRequest 直接上传会导致 "Access-Control-Allow-Origin"-error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21132945/

相关文章:

java - 确定代码是否在 App Engine 运行时 (Java) 上运行

gwt - 如何使用 GWT 内置 MVP 框架仅更改一个小部件并让其他小部件保持不变?

java - GXT:BorderLayout样式分割栏

javascript - ng-repeat 在 XMLHttpRequest 中定义绑定(bind)数据时不起作用

angular - this.interceptor.intercept 不是函数 Angular 8

google-app-engine - GWT 现在支持 spring roo,这对 GWT 开发人员意味着什么?

google-app-engine - 无法将 golang 应用上传到谷歌应用引擎

python - 让 pubsubhubbub 集线器工作

php - Javascript、AJAX 和 JSON 问题

java - GWT 验证框架 (GWTVF) 与 gwt 2.3?