Azure 存储 Blob CORS 错误

标签 azure cors azure-storage azure-blob-storage flutter-web

我有一个 Azure 存储帐户(经典),并且我通过门户启用了 CORS,方法如下:

enter image description here

现在我有一个 Flutter Web 应用程序 (PWA),需要从该存储中获取一些图像,但它出现 CORS 错误。

我还尝试使用简单的 jquery ajax 调用测试网页,但遇到了相同的错误。 这是 jquery 代码:

$.ajax({
        url: 'https://xxxx.blob.core.windows.net/test.jpg',
        type: 'get',
        success: function(data, status) {
            console.log("Status: "+status+"\nData: "+data);
        },
        error: function (result) {
            console.log(result);
        }           
     });

错误信息是:

Access to XMLHttpRequest at 'https://xxxx.blob.core.windows.net/test.jpg' from origin 'https://zzz.azurewebsites.net' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如何添加响应 header :access-control-allow-origin: *

谢谢。

最佳答案

chat 中所述,你的 CORS 配置完全没问题。您遇到的问题是因为浏览器缓存了 CORS 设置。我们发现了两件事:

  1. CORS 设置最长期限设置为非常高的值(86400 秒),这会使浏览器缓存 CORS 设置的时间更长。删除 CORS 设置并使用较低的最大年龄值重新创建它以及删除浏览器缓存将解决此问题。

  2. 在第二个浏览器中尝试 AJAX 请求总是有帮助的,以防万一第一个浏览器缓存了 CORS 设置。

关于Azure 存储 Blob CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67088308/

相关文章:

使用 PowerShell 的 Azure blob 版本保留详细信息

Tomcat CORS 过滤器 : Why is the default list of headers in "Access-Control-Allow-Headers" so arbitrarily limited?

asp.net-core - Asp.net Core 允许使用 CORS 自定义 header (在客户端使用 axios)

c# - Azure 文件存储在列表请求中包含文件元数据

reactjs - SharedKeyCredential 不是构造函数。 Azure存储 react 应用程序

Azure Devops 构建安装程序项目 (MSI) 突然不再工作

azure - 创建Web App Bot时如何选择模板?

azure - Windows Azure 工具 : Warning: Unable to delete directory

javascript - Onedrive cors 在 javascript 中下载

Azure Functions 存储帐户 : Used capacity is constantly rising