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

WSO2 API Manager 4.1.0容器部署VM时CORS等请求失败求助

解决WSO2 API Manager 4.1.0容器部署后开发者门户API访问CORS/请求失败问题

针对容器部署到VM后,开发者门户访问API出现Failed to fetch及CORS相关错误,可按以下步骤排查解决:

1. 修正请求URL与网络访问配置

  • 替换请求中的localhost为VM的实际IP或域名:容器部署后,localhost指向容器内部而非VM主机,必须使用VM对外可访问的IP/域名(如https://<VM_IP>:8243/api/n/1.0)。
  • 确认容器端口映射:启动容器时需正确映射8243端口,示例命令:
    docker run -p 8243:8243 -p 9443:9443 wso2/wso2am:4.1.0
    
  • 开放VM防火墙/安全组:确保VM的8243、9443端口允许外部访问,避免网络拦截。

2. 配置API的CORS规则

  • 登录APIM管理控制台(https://<VM_IP>:9443/carbon),进入API Publisher找到目标API(api/n/1.0)。
  • 进入API的Runtime Configurations -> CORS Configuration,启用并配置:
    • 勾选Enable CORS
    • 允许的Origin:填写开发者门户的访问地址(如https://<VM_IP>:9443,生产环境避免使用*)
    • 允许的Methods:包含你需要的请求方法(如GET、POST)
    • 允许的Headers:添加Content-Type、Authorization等常用请求头
  • 保存配置后重新发布API。

3. 配置WSO2 APIM主机名

  • 容器启动时指定APIM主机环境变量,确保内部服务使用VM的对外IP:
    docker run -e APIM_HOST=<VM_IP> -p 8243:8243 -p 9443:9443 wso2/wso2am:4.1.0
    
  • 如需自定义配置,可挂载外部配置目录修改deployment.toml:
    [server]
    hostname = "<VM_IP>"
    
    修改后重启容器生效。

4. 验证网络与服务状态

  • 在开发者门户所在机器执行curl命令测试API连通性:
    curl -v https://<VM_IP>:8243/api/n/1.0
    
  • 检查容器运行状态:docker ps确认容器正常启动;查看容器日志:docker logs <container_id>排查服务启动异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:47:41