WebApi Swagger (Swashbuckle) - 通过代理连接时无法访问 Swagger UI
WebApi Swagger (Swashbuckle) - can't access Swagger UI when connecting through proxy
我在我的一个 API 控制器上启用了 swagger (Swashbuckle)。
服务器位于 http://192.168.7.119:1001 and Swagger UI is accessed through http://192.168.7.119:1001/swagger。
在本地连接时,一切正常,我可以按预期在端口 1001 上访问 Swagger UI。
但是当尝试通过端口 1000 上的代理连接时(将 1000 重定向到 1001),我得到一个众所周知的错误:
“无法从服务器读取。它可能没有适当的访问控制源设置”。
我读过这个:
Unable to access swagger despite cors enabled Asp.NET WebAPI
并尝试在启动文件中手动设置 RootUrl,在 Swagger 中,如下所示:
.EnableSwagger(c =>
{
c.RootUrl(req => @"http://192.168.7.119:1001";
...
});
CORS 设置设置为:
appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
任何提示我在这里做错了什么?
将 Swashbuckle 的 github 回购中的这两页放在一起,最简单的方法就是:
- From Github Make sure that your proxy is sending the X-Forwarded-* headers (Apache does it out of the box while Nginx doesn't seems so. You have to do some changes on the nginx conf.
- From Github。使用 ComputeHostAsSeenByOriginalClient 方法创建此 HttpRequestMessageExtensions 静态 class,然后
.EnableSwagger(c =>
{
c.RootUrl(req => req.ComputeHostAsSeenByOriginalClient());
...
});
我在我的一个 API 控制器上启用了 swagger (Swashbuckle)。
服务器位于 http://192.168.7.119:1001 and Swagger UI is accessed through http://192.168.7.119:1001/swagger。
在本地连接时,一切正常,我可以按预期在端口 1001 上访问 Swagger UI。 但是当尝试通过端口 1000 上的代理连接时(将 1000 重定向到 1001),我得到一个众所周知的错误:
“无法从服务器读取。它可能没有适当的访问控制源设置”。
我读过这个:
Unable to access swagger despite cors enabled Asp.NET WebAPI
并尝试在启动文件中手动设置 RootUrl,在 Swagger 中,如下所示:
.EnableSwagger(c =>
{
c.RootUrl(req => @"http://192.168.7.119:1001";
...
});
CORS 设置设置为:
appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
任何提示我在这里做错了什么?
将 Swashbuckle 的 github 回购中的这两页放在一起,最简单的方法就是:
- From Github Make sure that your proxy is sending the X-Forwarded-* headers (Apache does it out of the box while Nginx doesn't seems so. You have to do some changes on the nginx conf.
- From Github。使用 ComputeHostAsSeenByOriginalClient 方法创建此 HttpRequestMessageExtensions 静态 class,然后
.EnableSwagger(c =>
{
c.RootUrl(req => req.ComputeHostAsSeenByOriginalClient());
...
});