I am developing simple project using .NET Core Web API & Angular 14. But when I am trying to get the data from web api I am getting this error.
message: "Http failure response for https://localhost:7032/api/Student: 0 Unknown Error"
This is my angular student service codes
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
const baseURL = 'https://localhost:7032/api/Student';
@Injectable({
providedIn: 'root'
})
export class StudentService {
constructor(private httpClient: HttpClient) { }
// get all students
readAll(): Observable<any> {
return this.httpClient.get(baseURL);
}
// get student by id
read(id): Observable<any> {
return this.httpClient.get('${baseURL}/${id}');
}
// create new student
create(data): Observable<any> {
return this.httpClient.post(baseURL, data);
}
// update student
update(id, data): Observable<any> {
return this.httpClient.put('${baseURL}/${id}', data);
}
// delete student
delete(id): Observable<any> {
return this.httpClient.delete('${baseURL}/${id}');
}
// delete all students
deleteAll(): Observable<any> {
return this.httpClient.delete(baseURL);
}
// search student by name
searchByName(name): Observable<any> {
return this.httpClient.get('${baseURL}?name=${name}');
}
}
This is student list component codes
import { Component, OnInit } from '@angular/core';
import { StudentService } from 'src/app/services/student.service';
@Component({
selector: 'app-student-list',
templateUrl: './student-list.component.html',
styleUrls: ['./student-list.component.css']
})
export class StudentListComponent implements OnInit {
students: any;
currentStudent = null;
currentIndex = -1;
firstName = '';
constructor(private studentService: StudentService) { }
ngOnInit(): void {
this.readStudents();
}
readStudents(): void {
this.studentService.readAll().subscribe(
{
next: (students) => this.students = students,
error: (error) => console.log(error),
complete: () => console.log("Completed")
})
}
refresh(): void {
this.readStudents();
this.currentStudent = null;
this.currentIndex = -1;
}
setCurrentStudent(student, index): void {
this.currentStudent = student;
this.currentIndex = index;
}
deleteAllStudents(): void {
this.studentService.deleteAll()
.subscribe(
response => {
console.log(response);
this.readStudents();
},
error => {
console.log(error);
});
}
searchByName(): void {
this.studentService.searchByName(this.firstName)
.subscribe(
students => {
this.students = students;
console.log(students);
},
error => {
console.log(error);
});
}
}
In .Net Core Web API I have enable cros.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<StudentDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("StudentDbContext")
?? throw new InvalidOperationException("Connection string 'StudentDbContext' not found.")));
// Add services to the container.
builder.Services.AddControllers( options =>
{
options.RespectBrowserAcceptHeader = false;
});
builder.Services.AddCors();
builder.Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
builder.Services.AddScoped<IStudentRepository, StudentService>();
builder.Services.AddScoped<ICourseRepository, CourseService>();
// Log Details
var path = Directory.GetCurrentDirectory();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File($"Logs/{Assembly.GetExecutingAssembly().GetName().Name}.log")
.WriteTo.Console()
.CreateLogger();
builder.Logging.ClearProviders();
builder.Logging.AddSerilog();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
app.UseCors(options => options.WithOrigins("http://localhost:4200/")
.AllowAnyMethod()
.AllowAnyHeader());
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
else if (app.Environment.IsProduction())
{
app.UseHttpsRedirection();
}
app.UseAuthorization();
app.MapControllers();
app.Run();
Could someone can help to identify the issue ?