На этот вопрос уже есть ответ здесь:
Я запускаю приложение ASP.NET Core Angular, я добавил контроллер Api в приложение Core и пытаюсь сделать вызов API из приложения Angular, приложение Core размещается на 58181, а приложение Angular на 44337, когда я попытаться вызвать Api от Angular получить
Access to XMLHttpRequest at 'http://localhost:58181/api/authenticate/login' from origin 'https://localhost:44337' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
Я настраиваю Cors в API
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy", policy =>
{
policy.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
app.UseCors("CorsPolicy");
Я пытаюсь вызвать API как этот
register() {
var body = {
UserName: this.formModel.value.UserName,
Email: this.formModel.value.Email,
FullName: this.formModel.value.FullName,
Password: this.formModel.value.Passwords.Password
};
return this.http.post(this.BaseURI + '/authenticate/register', body, {
headers: new HttpHeaders({
'Access-Control-Allow-Origin':'*',
'Content-Type': 'application/json',
'Authorization':'authkey',
'userid':'1'
})});
}
Я ожидаю вызова моего контроллера аутентификации и входа в систему /регистрации моего пользователя, и приложение Angular, и Apis будут находиться на одном локальном хосте, на разных портах.