WSO2 AM 4.2:Devportal与Publisher试用API时出现CORS错误
解决WSO2 API Manager 4.2的CORS问题
以下是几个可能遗漏的配置点,逐一排查:
完善deployment.toml中的CORS配置
仅设置allow_origins不足以覆盖所有CORS场景,需要同时配置相关的请求方法、头部等。确保devportal和publisher的CORS配置都正确添加:# Devportal 端 CORS 配置 [apim.devportal.cors] allow_origins = "https://abde.domain" allow_methods = "GET,POST,PUT,DELETE,PATCH,OPTIONS" allow_headers = "authorization,Access-Control-Allow-Origin,Content-Type" allow_credentials = true expose_headers = "Location,Content-Type" # Publisher 端 CORS 配置 [apim.publisher.cors] allow_origins = "https://abde.domain" allow_methods = "GET,POST,PUT,DELETE,PATCH,OPTIONS" allow_headers = "authorization,Access-Control-Allow-Origin,Content-Type" allow_credentials = true expose_headers = "Location,Content-Type"检查API级别的CORS设置
登录Publisher编辑目标API,进入Runtime Configurations -> CORS Configuration,确认已启用CORS,并将https://abde.domain添加到允许的源列表中。平台级配置可能会被API级的自定义配置覆盖,若API未单独设置CORS,可能导致预检请求无响应头。配置网关的CORS规则
浏览器的预检请求会先到达API网关,因此需要确保网关的CORS配置正确(以默认网关为例):[apim.gateway.cors] allow_origins = "https://abde.domain" allow_methods = "GET,POST,PUT,DELETE,PATCH,OPTIONS" allow_headers = "authorization,Content-Type" allow_credentials = true验证配置生效
修改所有配置后重启WSO2 AM服务,通过浏览器开发者工具查看OPTIONS预检请求的响应头,确认是否包含Access-Control-Allow-Origin: https://abde.domain。若仍未出现,检查配置文件语法是否有误(如引号、空格问题)。排除浏览器扩展干扰
Chrome的部分扩展(如代理、广告拦截工具)可能影响CORS检查,尝试在无痕模式下测试,排除扩展因素。
内容的提问来源于stack exchange,提问作者Fajrul Kamil
相关产品推荐
相关产品推荐

