You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Blob Storage主端点与默认$web容器的CORS差异及405访问异常技术咨询

Azure Blob静态网站端点 vs $web容器Blob端点的CORS差异及405错误解决

这个问题其实是Azure Blob存储中静态网站主端点和**$web容器Blob端点**的CORS配置相互独立导致的,我来帮你拆解清楚两者的核心差异,以及你遗漏的配置步骤:

核心差异点

1. CORS规则的管控主体不同

  • $web容器的Blob访问端点(https://my-storage.blob.core.windows.net/$web/config/version.json)受Blob服务的CORS设置管控,也就是你之前配置的那套允许源*、方法GET/OPTIONS的规则,所以直接访问这个URL时跨域请求能正常通过。
  • 静态网站主端点(https://my-storage.z20.web.core.windows.net/config/version.json)是Azure为静态托管单独提供的端点,它的CORS规则完全独立于Blob服务的配置,不会自动继承$web容器的Blob CORS设置。

2. 请求处理逻辑不同

  • Blob端点本质是调用Blob存储的REST API,会严格遵循Blob服务的HTTP方法校验和CORS预检处理流程。
  • 静态网站端点是专门优化静态内容分发的,底层请求处理逻辑和Blob API不同,默认情况下没有启用任何CORS规则,所以浏览器发送的OPTIONS预检请求会被直接拒绝,返回405错误并触发CORS拦截。

解决办法:为静态网站端点单独配置CORS规则

你需要给静态网站端点单独设置CORS规则,操作步骤如下:

  1. 登录Azure门户,找到你的目标存储账户。
  2. 在左侧导航栏中找到「静态网站」选项,进入后滚动到页面底部的「CORS」区域。
  3. 点击「添加」按钮,创建新的CORS规则:
    • 允许源:可以设置为http://localhost:7777(测试环境),生产环境建议限制为具体域名;如果需要开放所有源,也可以填*。
    • 允许方法:勾选GET和OPTIONS(对应你AJAX请求的需求)。
    • 允许请求头:填*或者你实际需要的请求头。
    • 暴露响应头:填*或者你需要前端读取的响应头。
    • 最大年龄:建议设置为86400(24小时),减少浏览器重复发送预检请求的次数。
  4. 保存配置,等待2-3分钟让配置生效,之后再测试你的JQuery AJAX请求,应该就能正常访问了。

内容的提问来源于stack exchange,提问作者Derek Greer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 10:03:13