尽管启用了cors Asp.NET WebAPI,但无法访问swagger
我有一个WebAPI-.NETFramework 4.6.2 我在通过swagger访问webapi时遇到以下错误: 无法从服务器读取。它可能没有适当的 访问控制源设置 我的代码中已经有CORS 我不知道发生了什么事 WebAPIConfig.cs尽管启用了cors Asp.NET WebAPI,但无法访问swagger,.net,asp.net-web-api,cors,swagger,.net,Asp.net Web Api,Cors,Swagger,我有一个WebAPI-.NETFramework 4.6.2 我在通过swagger访问webapi时遇到以下错误: 无法从服务器读取。它可能没有适当的 访问控制源设置 我的代码中已经有CORS 我不知道发生了什么事 WebAPIConfig.cs public static class WebApiConfig { public static void Register(HttpConfiguration config) { conf
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.EnableCors();
}
}
GlobalAsax.cs
protected void Application_Start()
{
RouteTable.Routes.MapOwinPath("swagger", app =>
{
app.UseSwaggerUi(typeof(WebApiApplication).Assembly, new SwaggerUiSettings
{
MiddlewareBasePath = "/swagger",
ShowRequestHeaders = true,
DefaultUrlTemplate = "{version}/{controller}/{action}/{id}",
AddMissingPathParameters = true,
Version = "v1"
});
});
IModule module = TfmsModule.GetModule(typeof(MyBCModule), "My");
module.StartModule();
Tracer.Info("MyAPI.Application_Start: MyBCModule(\"MyAPI\").StartModule()");
GlobalConfiguration.Configure(WebApiConfig.Register);
}
我在控制器的开头添加了以下行
[EnableCors(origins: "*", headers: "*", methods: "*")]
我能得到一些帮助吗?我想你正在使用Swashback。如果不是这样的话,我会删除帖子 错误: 无法从服务器读取。它可能没有适当的 访问控制源设置 如果根URL与传入请求的根URL不匹配,则在请求招摇过市UI时引发。根URL用于通过UI页面获取Swagger文档,因此如果根URL和Swagger UI请求的URL不同,则会出现CORS错误。根据虚张声势的注释: 默认情况下,服务根url是从用于 访问文档。但是,可能存在以下情况(例如代理和 负载平衡环境)中,此问题无法正确解决。你 您可以通过提供自己的代码来确定根目录来解决此问题 网址 因此,在某些情况下,您可能通过代理进入,但根URL设置不正确。通过查看swagger页面源并查找以下行,可以查看正在解析的根URL:
window.swashbuckleConfig = {
rootUrl: '<THE_RESOLVED_ROOT_URL>', ...
…其中
GetRootUrlFromAppConfig
是一个返回根URL字符串的方法。浏览器开发工具控制台选项卡上的错误消息是什么?无法加载SwaggerUI无法从服务器读取。它可能没有适当的访问控制源设置。--调试时的消息function@Helen他是否在使用虚张声势的皮带扣?
c.RootUrl(req => GetRootUrlFromAppConfig());