У меня есть некоторые проблемы с вызовом моего ASP.NET Core WebAPI из моего приложения Ionic.
Я вижу в инструментах разработчика, что данные загружаются правильно, но Ionic выдает мне сообщение об ошибке:
сообщение об ошибке от Ionic:
данные, загруженные из API:
В API включен CORS:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddDbContext<TodoContext>(opt =>
opt.UseInMemoryDatabase("TodoList"));
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
public void Configure(IApplicationBuilder app)
{
app.UseCors(builder => builder.WithOrigins("http://localhost"));
app.UseMvc();
}
}
Я думаю, чтоошибка вызвана ионной или угловой.Когда я загружаю данные из публичного API, все работает нормально.Я также пытался получить доступ к API с ssl и без.
Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать меня в комментариях.
Редактировать
Вот как я называю API:
@Injectable()
export class RestProvider {
apiUrl = 'https://localhost:5001/api';
constructor(public http: HttpClient) { }
getTodoItems() {
return new Promise(resolve => {
this.http.get(this.apiUrl + '/todo').subscribe(data => {
resolve(data);
}, err => {
console.log(err);
});
});
}
}
, а это мой контроллер:
[Route("api/[controller]")]
[ApiController]
public class TodoController : ControllerBase
{
private readonly TodoContext _context;
public TodoController(TodoContext context)
{
_context = context;
if (_context.TodoItems.Count() == 0)
{
_context.TodoItems.Add(new TodoItem { Title = "Item1" });
_context.TodoItems.Add(new TodoItem { Title = "Item2" });
_context.SaveChanges();
}
}
[HttpGet]
public ActionResult<List<TodoItem>> GetAll()
{
return _context.TodoItems.ToList();
}
}