在Angular中发出HTTP请求到ASP.NET Core API时,遇到ERR_CONNECTION_REFUSED错误通常意味着无法建立与API的连接。以下是一些可能的解决方法:
确保ASP.NET Core API正在运行:在尝试与API建立连接之前,请确保API正在运行并处于可用状态。您可以尝试在浏览器中访问API的URL,以确保它能够正常工作。
检查API的URL和端口:确保在Angular代码中使用正确的API URL和端口号。您可以在Angular代码中的environment.ts文件中定义API的URL,并在需要执行HTTP请求的地方引用它。
例如,在environment.ts文件中添加以下内容:
export const environment = {
production: false,
apiUrl: 'http://localhost:5000/api' // 根据实际情况修改URL和端口号
};
然后,在需要执行HTTP请求的组件中引用它:
import { environment } from '../environments/environment';
import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) { }
// 在某个方法中执行HTTP请求
makeRequest() {
this.http.get(`${environment.apiUrl}/endpoint`).subscribe(response => {
// 处理响应
}, error => {
// 处理错误
});
}
检查CORS配置:如果您的ASP.NET Core API位于不同的域或端口上,您可能需要在API中配置CORS(跨源资源共享)。在Startup.cs文件的ConfigureServices方法中,添加以下代码以允许来自Angular应用的跨域请求:
services.AddCors(options =>
{
options.AddPolicy("AllowAngularApp",
builder =>
{
builder.WithOrigins("http://localhost:4200") // 根据实际情况修改URL和端口号
.AllowAnyHeader()
.AllowAnyMethod();
});
});
然后,在Configure方法中使用以下代码启用CORS策略:
app.UseCors("AllowAngularApp");
检查防火墙设置:如果您正在运行防火墙软件,请确保它允许从Angular应用发出的请求通过。您可以尝试禁用防火墙或调整其设置以允许对目标API的访问。
以上是一些可能导致ERR_CONNECTION_REFUSED错误的常见解决方法。根据您的具体情况,请逐一尝试这些方法,并根据实际情况进行调整。