我試圖通過AJAX從本地主機上的谷歌雲存儲獲取文件。我也做了以下內容:谷歌雲存儲忽略訪問控制源標題
通過gsutil會設置CORS我鬥:
gsutil cors set cors.json gs://my-project
其中cors.json文件是:
[
{
"origin": [
"*"
],
"responseHeader": ["Origin", "Accept", "X-Requested-With", "Authorization", "Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token"],
"method": [
"GET",
"OPTIONS"
],
"maxAgeSeconds": 1
}
]
我與gsutil cors get gs://my-project
然後對於每個文件,我已經公開,通過node.js客戶端庫文件上傳時:
bucket.file(object.name).makePublic()
通過控制檯,並通過gsutil會:
gsutil -m acl set -R -a public-read gs://my-project
然後在我的Ajax請求,我也送頭:
$.ajax({
method: "GET",
url: "https://googleapis.com/storage/v1/b/my-project/o?delimiter=audio",
headers: {
'Access-Control-Allow-Origin': '*'
},
crossDomain: true,
}).done((data) => {
console.log(data)
})
,我仍然獲得科斯錯誤:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:3000 ' is therefore not allowed access.
如何通過CORS?
非常有幫助的回覆 - 謝謝! – mheavers
以下是我的終端格式:「storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]」,是否意味着將其更改爲「www.storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]」「? – KevinHu
storage.googleapis.com/BUCKET/OBJECT很好。 –