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

如何解决从App Service调用Azure专用DNS区域指向AKS的URL时的CORS问题

解决方案

1. 排查DNS解析与缓存问题

  • 登录App Service的高级工具(Kudu),打开CMD窗口执行 nslookup <你的子域名>,确认返回的IP是否为AKS服务的正确地址。如果还是旧的过期域名IP,说明存在DNS缓存问题:
    • 直接重启App Service实例,或者等待DNS缓存TTL自然过期(通常1小时内)。
    • 检查专用DNS区域的VNet关联:必须将App Service所在的虚拟网络(若使用VNet集成)或AKS所在的VNet关联到该专用DNS区域,跨VNet场景需确保已建立对等连接。

2. 确认网络连通性

  • 若App Service未加入虚拟网络:
    • 若AKS Ingress使用内部负载均衡器,需通过VNet集成或VPN打通App Service与AKS的VNet;若使用外部Ingress,确认新的Ingress IP可被App Service正常访问。
  • 若App Service已启用VNet集成:
    • 检查VNet对等连接是否配置完成,NSG规则是否存在流量阻断,路由表配置是否正确。

3. 修正CORS配置

  • 检查AKS内API服务的CORS设置:确保允许的源包含App Service的域名(例如https://<你的appservice名称>.azurewebsites.net),同时放开OPTIONS预检请求的访问权限。
  • 若使用Nginx Ingress,可直接在Ingress资源中添加CORS相关配置:
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-origin: "https://<你的appservice名称>.azurewebsites.net"
    nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, PUT, DELETE, OPTIONS"
    nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
    
    配置完成后重新应用Ingress资源,或重启Ingress控制器。

4. 验证前端调用配置与浏览器缓存

  • 检查UI应用代码:确认API调用的域名是新配置的专用DNS域名,避免硬编码旧IP地址。
  • 强制刷新浏览器(Ctrl+F5),清除缓存的旧请求地址后重新测试。

5. 核对专用DNS区域记录

  • 确认专用DNS区域中的A/CNAME记录,是否正确指向AKS Ingress的对应IP:内部Ingress需指向内部负载均衡器IP,外部Ingress需确认是最新的公网IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 11:37:22