.net - 在远程环境的 web api 中访问 swagger 时遇到问题?
问题描述
我已经为我的 Web API 2.2 应用程序配置了 Swagger,它在本地加载,但是当我尝试在远程服务器上访问它时出现 CORS 错误。此外,为了进入大摇大摆的页面,我必须非常明确地使用 url。例如:
https://example.com/swagger/ui/index
相对于:
example.com/swagger/
我想我在之前的项目中遇到了类似的问题,我必须提供第一个示例中显示的完整显式 url,但在之前的项目中,使用长格式 url 按预期显示了工作页面。这是由于https配置吗?是否有可以配置为允许在 https 环境中使用短 url 的特殊招摇设置?在远程服务器上显示以下错误消息,清楚地表明 CORS 错误:
“无法从服务器读取。它可能没有适当的访问控制源设置。”
我已经尝试了以下线程中的所有内容,但我仍然遇到问题:
使用 ASP.NET Web API 对 PUT 和 DELETE 的 CORS 支持
如果我向远程服务器提交 API 搜索请求,则会返回“Access-Control-Allow-Origin > *”的响应标头,因此似乎为远程服务器启用了 CORS。不知道为什么招摇会遇到似乎是 CORS 错误?
解决方案
您需要在 SwaggerConfig 文件中指定完整的根 url。您可能会遇到这种情况,因为当您在本地运行时,API 是通过 HTTP 访问的,但在服务器上它将是 HTTPs,从而导致 CORS 问题,因为默认情况下您的 SwaggerCongif 仍将指向 HTTP 路径。
推荐阅读
- node.js - 错误:尝试运行 npm 时找不到模块“C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js”
- oracle - 通过在 oracle 中删除小数点和逗号后的值来更新列值
- keycloak - 如何将 Nuxeo 10.10 连接到 Keycloak
- kubernetes - 删除 Pod 时 PodDisruptionBudget 无效
- r - 如何在 R 中的一张图片中绘制经验 CDF 和理论 CDF?
- javascript - 谷歌 NumberFormat 与模式“太多百分比/permill”
- javascript - 循环遍历本地存储,如果元素存在则更新它,如果不将其添加到本地存储
- python - 将 Pandas DataFrame 转换为列表
- android - 材质工具栏覆盖 ViewFlipper android
- wordpress - wordpress 在非 https 外部内容上强制 https