我正在尝试上传一个文件到Firebase存储桶。
我无法这样做,因为一个跨源请求错误。
XMLHttpRequest cannot load gs://myappkhh.appspot.com. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
有人告诉我,处理这个问题的方法是命令行工具gsutil
(根据https://cloud.google.com/storage/docs/cross-origin)
如何在我现有的firebase项目中使用这个?我需要在哪里运行这个命令?
发布于 2018-04-07 11:19:06
登录到google:https://console.cloud.google.com/home并点击右上角的“激活Google”。
在窗口的底部,将显示一个shell终端,其中gcloud和gsutil已经可用。执行下面显示的命令。它创建了一个json文件,这是为您的桶设置cors-配置所必需的。此配置将允许每个域使用浏览器中的XHR-请求访问桶:
echo '[{"origin": ["*"],"responseHeader": ["Content-Type"],"method": ["GET", "HEAD"],"maxAgeSeconds": 3600}]' > cors-config.json
如果要限制访问一个或多个特定域,请将其URL添加到数组中,例如:
echo '[{"origin": ["https://yourdomain.com"],"responseHeader": ["Content-Type"],"method": ["GET", "HEAD"],"maxAgeSeconds": 3600}]' > cors-config.json
在下面的命令中用实际的桶名替换_YOUR_BUCKET_NAM_E,以更新存储桶中的cors-设置
gsutil cors set cors-config.json gs://YOUR_BUCKET_NAME
要检查所有操作是否如预期的那样,可以使用以下命令获取存储桶的cors-设置:
gsutil cors get gs://YOUR_BUCKET_NAME
https://stackoverflow.com/questions/43800398
复制相似问题