簡體   English   中英

Google Cloud Storage Ajax請求不起作用

[英]Google Cloud Storage Ajax Request Not Working

我在Google雲端存儲上有2個文件:a.wav和b.txt

我想在瀏覽器中播放a.opus,效果很好。 我想閱讀b.txt

Google文檔告訴用戶,如果用戶在瀏覽器中通過了身份驗證,則可以從存儲桶中下載對象。

<audio
    controls
    src="https://storage.cloud.google.com/bucketPath/a.wav" type="audio/ogg; codecs=opus">
        Your browser does not support the
        <code>audio</code> element.
</audio>

這將得到一個a.wav並播放它。 沒問題。

現在要讀取b.txt,我正在使用jquery ajax

$.ajax({
    url: "https://storage.cloud.google.com/bucketPath/b.txt",
    type: "GET",
    xhrFields: {
        withCredentials: true
    },
    crossDomain: true
}).done(function (data) {
    console.log( data );
}).fail(function( jqXHR, textStatus, errorThrown ) {
    alert( "Request failed: " + textStatus + " , " + errorThrown );
});

但這給了我錯誤,控制台中顯示了以下內容:

通過CORS策略已阻止從源“ URL”訪問位於“ https://storage.cloud.google.com/bucketPath/b.txt ”處的XMLHttpRequest:在上沒有“ Access-Control-Allow-Origin”標頭要求的資源。

另外,在“網絡”選項卡中,我可以看到wav文件得到了響應206。

但是對於txt文件,我的狀態為(canceled)

為什么Audio元素起作用而ajax不能起作用?

根據錯誤消息,您需要修改存儲文件的存儲桶的CORS配置。 它需要一個“ Access-Control-Allow-Origin”標頭 ,因為當您使用jQuery發出請求時,將應用同源策略。 您可以在此處找到有關CORS如何與Cloud Storage一起工作的更多信息。

請按照以下步驟操作 ,以確保不會拒絕對存儲桶的CORS請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM