异常:“<”是值的无效开头 Blazor WebAssembly

Exception: '<' is an invalid start of a value Blazor WebAssembly

使用服务从 api 接收数据时遇到问题。有人可以帮忙吗?问题是接收 html 数据而不是 json,但不知道为什么,尝试进行反序列化但不起作用。 控制器:

[Route("api/[controller]")]
[ApiController]
public class ItemController : ControllerBase
{
    private readonly AppDbContext _appDbContext;

    public ItemController(AppDbContext appDbContext)
    {
        _appDbContext = appDbContext;
    }

    [HttpGet]
    public async Task<IActionResult> GetItems()
    {
        return Ok(await _appDbContext.Items.ToListAsync());
    }
}

服务:

public class ItemService : IItemService
{
    private readonly HttpClient _httpClient;

    public ItemService(HttpClient httpClient)
    {
        _httpClient = httpClient;
    }

    public List<Item> Items { get; set; } = new List<Item>();

    public async Task<List<Item>> GetItems()
    {
        Items = await _httpClient.GetFromJsonAsync<List<Item>>("api/item");
        return Items;
    }
}

基类:

public class ItemsBase : ComponentBase
{
    [Inject]
    public IItemService ItemService { get; set; }

    protected override async Task OnInitializedAsync()
    {
        await ItemService.GetItems();
    }
}

您的 API 中有一个错误,而不是以 html 的形式返回列表,其返回错误以 <

开头

因此请调试您的 API 端点并查看错误发生的位置

作为@Surinders 回答的后续:

  1. 在此行上放置一个断点并检查 API 是否命中,然后返回什么。
   Items = await _httpClient.GetFromJsonAsync<List<Item>>("api/item");
  1. 使用 Postman 检查您从 Url 返回的内容。 Postman 是调试 API 的好工具。搜索“邮递员 API”。