Angular POST方法如何传递三个整数参数并拼接为URL路径参数
问题原因
- Angular
HttpClient.post方法第一个入参为完整请求URL,第二个入参为POST请求的请求体内容,你当前实现把路径参数放到了请求体位置,因此无法拼接到URL中,导致请求地址不符合预期。 - 路径参数本身以字符串形式存在于URL中,后端路由匹配时会自动解析为对应整数类型,不需要额外做类型转换处理。
修复方案
仅需要修改data.service.ts中的请求逻辑,推荐使用ES6模板字符串拼接路径,无请求体需要传递时第二个参数传null即可:
// data.service.ts bookRoom(user_id: number, room_id: number, date_id: number) { return this.http.post(`http://127.0.0.1:8000/api/bookRoom/${user_id}/${room_id}/${date_id}`, null); }
bookroom.component.ts的调用逻辑无需调整,原有写法即可正常运行。如果后端要求POST请求必须携带空请求体,把第二个参数null替换为{}即可。
内容的提问来源于stack exchange,提问作者XHTX
相关产品推荐
相关产品推荐

