问题描述: 在使用Angular与.NET Core进行前后端交互时,可能会遇到无法从.NET Core获取异常消息的问题。
解决方法:
[HttpGet]
public IActionResult Get()
{
try
{
// 执行一些操作
return Ok();
}
catch(Exception ex)
{
return BadRequest(ex.Message);
}
}
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { catchError } from 'rxjs/operators';
import { throwError } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class DataService {
private apiUrl = 'https://localhost:5001/api/data';
constructor(private http: HttpClient) { }
getData() {
return this.http.get(this.apiUrl)
.pipe(
catchError(error => {
let errorMessage = '';
if (error.error instanceof ErrorEvent) {
// 客户端错误
errorMessage = `Error: ${error.error.message}`;
} else {
// 服务器错误
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
// 抛出异常
return throwError(errorMessage);
})
);
}
}
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-data',
templateUrl: './data.component.html',
styleUrls: ['./data.component.css']
})
export class DataComponent implements OnInit {
data: any;
errorMessage: string;
constructor(private dataService: DataService) { }
ngOnInit() {
this.dataService.getData().subscribe(
result => {
this.data = result;
},
error => {
this.errorMessage = error;
}
);
}
}
通过以上方法,您应该能够从.NET Core获取异常消息并在Angular应用程序中进行处理。