![](/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.