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

ARM部署Azure App Service时CORS设置未生效问题

问题原因及解决方案

你的ARM模板中CORS设置未生效的核心问题有两个:

  • 参数引用被错误包裹为字符串:allowedOrigins的值被双引号包裹,导致ARM模板将[parameters('backEndCORSOrigins')]当作字面量字符串处理,而非解析参数值。
  • 参数类型不匹配:allowedOrigins要求是数组类型,但你的参数值是单个字符串,不符合配置要求。

修正后的ARM模板配置

1. 修改siteConfig中的CORS部分

去掉allowedOrigins的外层双引号,并将参数值包装为数组(即使只有单个origin):

"siteConfig": {
    "AlwaysOn": true,
    "linuxFxVersion": "NODE|16-lts",
    "appCommandLine": "startup command goes here",
    "cors": {
        "allowedOrigins": [parameters('backEndCORSOrigins')],
        "supportCredentials": false
    },
    "appSettings": "ENV_VARS_GO_HERE",
    "scmIpSecurityRestrictions": "[parameters('backEndSCMIPRestrictions')]",
    "IpSecurityRestrictions": "[parameters('backEndIPRestrictions')]"
}

2. 调整参数定义为数组类型(推荐,支持多origin)

如果需要后续添加多个允许的origin,直接修改参数值数组即可:

"backEndCORSOrigins": {
    "value": ["https://hostname.azurewebsites.net"]
}

备选方案:若参数保持单个字符串

如果坚持参数为单个字符串,也可以直接在allowedOrigins中用数组包裹参数引用,如上述siteConfig的写法,此时ARM会将单个字符串转为数组元素。

验证逻辑

修正后重新部署,ARM会正确解析参数值并将其作为数组传入allowedOrigins,应用服务的CORS规则即可正常生效。

内容的提问来源于stack exchange,提问作者Andrew Wiebe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:45:45