cors - 如何使用 WSO2 API Manager 2.6.0 分析和修复由于 CORS 和 Chrome 导致的随机故障
问题描述
在 API Publisher 中创建 URL 模式时,我创建了 GET 方法/something/v2%2E0 - 如您所见,我使用编码 %2E 而不是点 2.0。
在测试它时,我注意到该方法在我使用 FF 时有效,但在 Chrome 上无效,并显示以下错误消息:
Access to fetch at ' https://something:port/context/v1.0/something/v2.0 ?limit=1 ' from origin 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
我检查了两个浏览器中的标题并注意到以下差异:在响应标题中 FF 有“接受:* / *”而 Chrome 没有。
更改 CORS 配置没有帮助。目前我的 CORS conf 如下所示:
启用基于 API 的 CORS 配置:是
访问控制允许来源:是 - 所有允许来源
访问控制允许标头:授权、访问控制允许来源、内容类型、SOAPAction、授权
访问控制允许方法: GET、OPTIONS
我安装并启用了启用 Allow-Control-Allow-Origin: * 的 Chrome 插件,但它仍然无法正常工作。
有趣的是,该方法仅在我添加额外的 GET 方法/something/v2.0时才开始工作。当 API 发布者中存在这个新方法时,/something/v2%2E0开始工作,我在 Chrome 标头中得到“Accept: * / *”。如果我删除/something/v2.0,/something/v2%2E0不会获取数据。
任何提示和提示表示赞赏:)
根据评论中的要求添加 OPTIONS 标头(请求和响应)。
解决方案
推荐阅读
- c# - 用矩阵中对角线的下方替换上面的元素
- arrays - 将数组复制到作为集合一部分的工作簿中会在 VBA 中产生运行时错误 451
- visual-studio-code - 鼠标悬停时,vscode中是否有任何插件可以在小地图中预览代码段?
- r - 如何为R中变量的每个级别返回代码向量?
- javascript - 使用从 api 获取信息的 java 脚本创建下拉列表
- python - 如何修复 Pygame 中的类型错误:TypeError: +=: 'int' 和 'pygame.math.Vector2' 不支持的操作数类型
- r - R管道工api生成信息文档
- typescript - 基于界面键的新界面
- python - Tradingview V1 到 V4 iff 语句转换
- java - 从 AWS COST EXPLORER API 获取详细报告