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

NX Module Federation(Angular)部署本地IIS遇CORS异常,求正确配置方案

解决NX Module Federation部署IIS后的CORS异常问题

核心原因

你在module-federation.config.js里配置的headers仅对**开发环境(ng serve)**生效,部署到IIS后,静态资源由IIS托管,Webpack的配置不会被IIS识别,必须在IIS层面配置CORS规则。

具体解决步骤

1. 安装IIS CORS模块

打开IIS管理器,先确认是否安装了「IIS CORS模块」:

  • 若未安装,通过「服务器管理器」→「添加角色和功能」→ 展开「Web服务器(IIS)」→「Web服务器」→「HTTP功能」→ 勾选「CORS」完成安装。

2. 为每个Remote站点配置CORS规则

Host运行在6001端口,需要给6002-6007每个Remote站点单独设置允许Host访问的规则:

  • 选中目标Remote站点(比如6002端口的站点),双击「CORS」功能
  • 点击右侧「添加规则」:
    • 允许的原点:填写http://localhost:6001(生产环境建议填具体域名,不要用*)
    • 允许的HTTP方法:勾选GET和OPTIONS(Module Federation加载资源主要依赖这两个方法,OPTIONS是预请求必须的)
    • 允许的请求标头:可填*或按需指定(比如content-type)
    • 其他选项保持默认,点击「确定」
  • 对6个Remote站点重复上述配置

3. 确保IIS允许OPTIONS请求

Module Federation加载Remote资源会先发OPTIONS预请求,需确认IIS未禁止该方法:

  • 选中站点,双击「请求筛选」
  • 切换到「HTTP方法」标签,检查是否存在OPTIONS;若没有,点击「添加允许的HTTP方法」,输入OPTIONS并确认。

4. 验证配置

部署完成后,打开浏览器开发者工具的「网络」面板:

  • 查看Remote资源的请求响应头,确认包含Access-Control-Allow-Origin,值为http://localhost:6001或你指定的允许值
  • 确认OPTIONS预请求返回200状态码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:51:01