此错误表示资源无法访问,因为没有提供有效的身份验证凭据。以下是一些可能的解决方案:
检查 ASP.NET Core Web API 项目中的身份验证设置是否正确。您可以在 Startup.cs 文件中查看是否启用了身份验证,或者是否正确配置了身份验证选项。
如果您使用了令牌身份验证,则可能需要刷新令牌。令牌可能已过期或无效。尝试重新登录并获取新的令牌。
检查 Angular 应用程序中 HTTP 请求的身份验证头。在请求中包含有效的 JWT 令牌可能会解决此问题。
检查 ASP.NET Core Web API 中的授权设置。可能需要对受保护资源进行更改,并确保只有授权用户可以访问该资源。
以下是一个示例,演示如何在 Angular 应用程序中添加 Authorization 头来解决此问题:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
// Replace with your API endpoint
const API_URL = 'http://localhost:5000/api';
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(private http: HttpClient) { }
// Add Authorization header to HTTP request
private getHeaders() {
const token = localStorage.getItem('jwt');
const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);
return headers;
}
// HTTP GET request with Authorization
getData(): Observable {
const url = `${API_URL}/data`;
const headers = this.getHeaders();
return this.http.get(url, { headers });
}
// HTTP POST request with Authorization
postData(data: any): Observable {
const url = `${API_URL}/data`;
const headers = this.getHeaders();
return this.http.post(url, data, { headers });
}
}
请注意,在这个示例中使用了 localStorage 来存储 JWT 令牌。您可以根据您的实际情况使用任何其他身份验证方案。