.NET 6 C# API与Angular通信异常:addToOrder POST请求无响应问题
问题根因
Angular侧的addToOrder方法存在URL调用错误:你已经拼接了符合后端路由要求的完整请求路径url = ${this.orderUrl}/name/${user}``,但实际调用http.post时传入的仍是根路径this.orderUrl,而非拼接完成的正确路径,因此请求无法匹配到你定义的[HttpPost("name/{name}")]接口,自然不会触发后端逻辑。
修复方案
将addToOrder方法中http.post的第一个参数替换为拼接好的url变量即可,修改后代码如下:
addToOrder(user: string, book: Book): Observable<Book> { const url = `${this.orderUrl}/name/${user}`; // 原代码第一个参数为this.orderUrl,替换为url即可 return this.http.post<Book>(url, book, this.httpOptions).pipe( tap(_ => this.log(`added book to order for ${user}`)), catchError(this.handleError<Book>('addToOrder')) ); }
辅助验证建议
如果修改后仍有问题,可按以下步骤排查:
- 打开浏览器开发者工具的「网络」面板,确认实际发起的请求URL、请求方法、请求体是否符合预期
- 检查后端是否配置了针对POST请求的跨域规则,确保
OPTIONS预检请求可正常通过 - 确认
Book对象的属性名、类型与后端接口接收的参数定义完全匹配,避免模型绑定失败
内容的提问来源于stack exchange,提问作者Mariusz Szczerba
相关产品推荐
相关产品推荐

