На самом деле это не сообщение дублирование , я знаю, что часть заголовка много раз спрашивалась в сообществе stackoverflow , я читаю все сообщения и ответы, но я думаю, что моя проблемаи технологии, которые я использовал, отличаются.
Прежде всего, я должен упомянуть, ASP.NET Core WEB/API
- это мое back-end-приложение, а Reactjs
- это мое переднее приложение.
Я читал о CORS
и я узнал, что я должен включить CORS
в ASP.NET
приложении и поставить 'Access-Control-Allow-Origin':'*'
в заголовок моего запроса, но у меня все еще есть ошибка ниже, когда я вызываю API:
Нет 'Заголовок Access-Control-Allow-Origin 'присутствует в запрашиваемом ресурсе.Происхождение 'http://localhost:8080' поэтому не допускается.Ответ имеет HTTP-код состояния 500. Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Это мой код Startup.cs
относится к CORS
:
public void ConfigureServices(IServiceCollection services)
{
// other lines of code
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
services.Configure<MvcOptions>(options =>
{
options.Filters.Add(new CorsAuthorizationFilterFactory("AllowAll"));
});
// other lines of code
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseCors("AllowAll");
app.UseAuthentication();
app.UseMvc();
}
Это мой код реакции:
function save(message) {
const requestOptions = {
method: 'POST',
mode: 'cors',
headers: { ...authHeader(),
'Content-Type': 'application/json',
'Access-Control-Allow-Origin':'*',
},
body: JSON.stringify(message)
};
return fetch(config.apiUrl + '/message/save', requestOptions).then(handleResponse, handleError);
}
Спасибо за ваш ответ.