我将 json blob 存储在 azure 上,并通过 XHR 访问它。在尝试加载这些 blob 时,我收到此错误:
XMLHttpRequest 无法加载http://myazureaccount.blob.core.windows.net/myjsoncontainer/myblob.json?json http://myazureaccount.blob.core.windows.net/myjsoncontainer/myblob.json?json。起源http://localhost http://localhostAccess-Control-Allow-Origin 不允许。
有什么办法可以设置访问控制允许来源 https://developer.mozilla.org/en/HTTP_access_control#Access-Control-Allow-Originazure 返回的 blob 标头?
Windows Azure 存储于 2013 年 11 月 26 日添加了 CORS 支持:Windows Azure 存储服务的跨域资源共享 (CORS) 支持 http://msdn.microsoft.com/en-us/library/windowsazure/dn535601.aspx。更多详细信息和 C#/JavaScript 示例 -Windows Azure 存储:CORS 简介 http://blogs.msdn.com/b/windowsazurestorage/archive/2014/02/03/windows-azure-storage-introducing-cors.aspx.
可以使用 Windows.Azure.Storage 客户端库版本 3.0.1.0 或更高版本(可从 NuGet 获取)在存储帐户上设置 CORS 选项,使用类似于以下伪代码的内容:
var storageAccount = CloudStorageAccount.Parse(
"DefaultEndpointsProtocol=https;AccountName=ABC;AccountKey=XYZ");
var blobClient = storageAccount.CreateCloudBlobClient();
var serviceProperties = blobClient.GetServiceProperties();
serviceProperties.Cors.CorsRules.Clear();
serviceProperties.Cors.CorsRules.Add(new CorsRule() {
AllowedHeaders = { "..." },
AllowedMethods = CorsHttpMethods.Get | CorsHttpMethods.Head,
AllowedOrigins = { "..." },
ExposedHeaders = { "..." },
MaxAgeInSeconds = 600
});
blobClient.SetServiceProperties(serviceProperties);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)