簡體   English   中英

Blazor GetAsync 請求返回 401 狀態代碼

[英]Blazor GetAsync request returns 401 status code

我是 blazor 的新手,並嘗試使用 .NET Core /EF Core 3 和 Visual Studio 2019 創建應用程序。我已經設置了一個數據庫模型和一個 API,用於獲取所有地址 (/api/Address) 並在瀏覽器中瀏覽到此返回數據庫中的所有記錄。 但是我在 Razor 文件中的 My GetAsync 方法返回 401,最終返回 null。

這是我的剃刀代碼:

@functions 
{
   Address[] addresses;
   protected override async Task OnInitializedAsync()
   {
     addresses = await Http.GetJsonAsync<Address[]>("api/Address");
   }
}

這是我的 API

[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class AddressController : ControllerBase
{
    private readonly MyDataContext _context;
    // GET: api/Address
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Address>>> GetAddresses()
    {
        return await _context.addressesDbSet.ToListAsync();
    }
}

我得到的所有錯誤說

 HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).

沒有進一步說明,我無法理解原因,任何建議或建議將不勝感激。

我已經解決了這個問題,下面是我的解決方案,以防其他人遇到同樣的問題。

注入HttpClient我在調用GetAsSync之前將以下參數傳遞給HttpClient

var handler = new HttpClientHandler() 
{ 
    UseDefaultCredentials = false, 
    Credentials = System.Net.CredentialCache.DefaultCredentials,
    AllowAutoRedirect = true 
};

Http = new HttpClient(handler);
Http.BaseAddress = new Uri(/*YOUR BASE Uri*/);

Addresses = await Http.GetJsonAsync<Address[]>("api/Address");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM