我试着:
a)首先发送预检请求并返回响应200,其包括具有正确主机名的头:access-control-allow-origin
b)接下来,上传请求被发送到谷歌存储,上传完成正确并返回响应(例如包括带有上传详细信息的JSON)。
但是响应不包括header:access-control-allow-origin并且因为该浏览器抱怨:跨源请求被阻止:同源策略不允许在https://www.googleapis.com/upload/storage/v1/b/test-bucket/o?uploadType=resumable&upload_id=AEnB2UoTmA9ul读取远程资源。 (原因:缺少CORS标题'Access-Control-Allow-Origin')。
为了解决这个问题,一些文章建议:
是的,我解决了 - 问题是Java不允许使用自定义值发送/设置Origin标头。所以,即使我设置了Origin值 - 它也没有被发送。
要解决此问题,必须在启动Java进程时配置sun.net.http.allowRestrictedHeaders = true。