Я следовал за помощью к ASP.NET Web API Help Pages using Swagger и я получаю следующее сообщение об ошибке в Chrome:ASP.NET Ядро Кураж не работает в Chrome с CORS ошибки
- Не удается прочитать с сервера. Возможно, у него нет соответствующих настроек источника контроля доступа.
Он работает в IE10, однако, похоже, он не подбирает изменения.
Я нашел следующую запись Can't read swagger JSON from http://localhost:9000/api-docs/, к сожалению, она относится к ее изменению под хрюканьем, когда она теперь работает под глотком.
Я также попытался изменить настройки CORS в ядре ASP.NET:
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddMvc();
// Inject an implementation of ISwaggerProvider with defaulted settings applied
services.AddSwaggerGen();
services.ConfigureSwaggerGen(options =>
{
options.SingleApiVersion(new Info
{
Version = "v1",
Title = "Status API",
Description = "A simple example ASP.NET Core Web API!",
TermsOfService = "None",
Contact = new Contact { Name = "A Persone", Email = "[email protected]", Url = "http://www.some-company.com/" },
License = new License { Name = "Use under LICX", Url = "http://url.com" }
});
});
services.AddCors(options =>
{
options.AddPolicy("AnyOrigin", builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod();
});
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseApplicationInsightsRequestTelemetry();
app.UseApplicationInsightsExceptionTelemetry();
app.UseMvc();
// Enable middleware to serve generated Swagger as a JSON endpoint
app.UseSwagger();
// Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
app.UseSwaggerUi();
app.UseCors("AnyOrigin");
}
К сожалению, это не имеет никакого значения.
Предложения о том, как решить эту проблему, изменив настройки глотка или изменения .NET была бы весьма желательны
1. AddCors только добавляет зависимости, это не добавляет к промежуточному. Это то, что вы делаете с UseCors. Вы используете UseCors? 2. Если да, то в чем его конфигурация? 3. Вы запускаете два отдельных приложения на двух разных портах? IE угрожает одной и той же схеме хоста +, но другой порт как таковой, Firefox и Chrome этого не делают. 4 происходит ли это по всем запросам или только по другим запросам? Один из браузеров не отправил предполетную копию перед отправкой запроса, а не dunno, какой из них он был. 5. Вы получаете исключение с сервера? Исключение промежуточного программного обеспечения удаляет заголовки CORS из запроса – Tseng
Я запускаю пользовательский интерфейс swagger на localhost: 8080 и API на localhost: 17237 – Mark
Тогда ваши настройки CORS неверны. Покажите свою политику CORS, которую вы использовали. Как я уже сказал, IE рассматривает разные порты как одно и то же происхождение и не применяет одну и ту же политику происхождения. – Tseng