use*_*300 5 azure azure-storage-emulator ng-file-upload
我正在尝试使用azure存储模拟器测试html5,angularjs应用程序的上传功能.出于某种原因,每次我将文件发送到localhost的azure生成的url时,我都会收到CORS错误.现在在云实例上,我使用以下代码添加CORS支持,它可以工作:
blobServiceProperties.Cors.CorsRules.Add(new CorsRule()
{
AllowedHeaders = new List<string>() { "*" },
//ExposedHeaders = new List<string>() {"*"},
AllowedMethods = CorsHttpMethods.Post | CorsHttpMethods.Put | CorsHttpMethods.Get | CorsHttpMethods.Delete,
AllowedOrigins = new List<string>() { "http://example.com" },
MaxAgeInSeconds = 3600
});
Run Code Online (Sandbox Code Playgroud)
当我尝试为模拟器运行此操作时,我收到错误,指示不允许这样做.我是否还必须为模拟器设置CORS,如果是这样,我将如何执行此操作,因为上述代码无法从模拟器中运行?
根据 MSDN 文档,我想澄清一件事
“Azure 存储服务支持 Blob、表和队列服务的跨源资源共享 (CORS)。文件服务从 2015-02-21 版本开始支持 CORS。”
更进一步说
您可以通过调用“设置 Blob 服务属性”、“设置文件服务属性”、“设置队列服务属性”和“设置表服务属性”来为每个存储服务单独设置 CORS 规则。为服务设置 CORS 规则后,将评估来自不同域的服务发出的经过正确身份验证的请求,以确定是否根据您指定的规则允许该请求。
所以我很好奇该服务是文件服务还是只是 Blob 服务,您似乎已根据提供的代码片段为 Blob 服务启用了 CORS。但是您没有放置上传功能的代码片段,如果您通过AJAX执行此操作,则需要将标头类型设置为Azure服务的blob类型,否则如果不能,跨源请求可能会在请求端本身被阻止与服务响应头类型匹配。
请同时检查这两个链接
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |