![](/img/trans.png)
[英]Upload a file to Google Cloud Storage Bucket with PHP and 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.