在远程环境中的web api中访问swagger时遇到问题?

时间:2018-05-02 18:43:57

标签: .net asp.net-web-api cors asp.net-web-api2 swagger

我为我的Web API 2.2应用程序配置了Swagger并且它在本地加载但是当我尝试在远程服务器上访问它时出现CORS错误。此外,只是为了进入招摇页面,我必须非常明确地使用网址。例如:

https://example.com/swagger/ui/index

相反:

example.com/swagger /

我认为我在之前的项目中遇到了一个类似的问题,我必须提供第一个示例中显示的完整显式网址,但在此前一个项目中,使用长格式网址按预期显示了工作的swagger页面。这是由于https配置吗?是否有一个特殊的招摇设置可以配置为允许https环境中的短网址?在远程服务器上,将显示以下错误消息,其中显示为明确指示CORS错误:

"无法从服务器读取。它可能没有适当的访问控制原点设置。"

我已经尝试了以下帖子中的所有内容,但我仍然遇到了这个问题:

CORS support for PUT and DELETE with ASP.NET Web API

如果我向远程服务器提交API搜索请求,则响应标头为" Access-Control-Allow-Origin> *"返回,因此似乎为远程服务器启用了CORS。不确定为什么招摇会遇到似乎是CORS的错误?

1 个答案:

答案 0 :(得分:0)

您需要在SwaggerConfig文件中指定完整的根URL。您可能面临这种情况,因为当您在本地运行时,API通过HTTP访问,但在服务器上它将是HTTP,导致CORS问题,因为您的SwaggerCongif仍将默认指向HTTP路径。