Why*_*ser 2 gwt google-app-engine xmlhttprequest cors google-cloud-storage
我的以下问题使用:Java,GWT,jQuery,App Engine(GAE).
关于"Access-Control-Allow-Origin" - 头部有很多问题,但似乎没有什么是我追求的.
我正在尝试使用POST对象将文件上传到Google云端存储.如果我只是使用html表单来实际上传,这可以正常工作.但是,一旦我尝试使用XMLHttpRequest发出完全相同的请求,我就会收到错误"No'Access-Control-Allow-Origin'标头出现在请求的资源上".我已经按照设置CORS进行了斗式导航.我的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>
Run Code Online (Sandbox Code Playgroud)
那我为什么要使用XMLHttpRequest呢?这是因为我希望能够将上传文件上传到Google云端存储(GCS).我不确定我是否在某处犯了一些错误,或者在上传到GCS时甚至可能有上传进度.但据我所知,对此应该没有限制,因为上传进程不是基于与GCS的通信(除了上传速度之外).
我已经强行清理了我的缓存,但这没有用!:(
有什么建议?
谢谢!
我真的不喜欢回答我自己的问题,因为在我问之前我似乎没有做足够的研究.但我真的这么做了,在我提出这个问题之前,我确实尝试了1.5天.
问题是CORS xml文件中的一行:
<ResponseHeader>x-goog-meta-foo1</ResponseHeader>
Run Code Online (Sandbox Code Playgroud)
应该替换为:
<ResponseHeader>*</ResponseHeader>
Run Code Online (Sandbox Code Playgroud)
我真的不认为这会有任何不同,因为我认为'Access-Control-Allow-Origin'标题将默认发送,因为这就是为什么我进行此设置而文档没有提及任何关于它.我确实理解这x-goog-meta-foo1是一个例子,但如果使用它会破坏设置(Google,请更新文档).
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |