繁体   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