You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular Service如何传递参数?API请求404问题求助

解决Angular Service API请求404问题

你的请求404是因为URL拼接错误:没有添加查询参数的分隔符?和参数名i=,直接把参数值拼在filter.php后面,导致生成的URL格式不符合API要求。

修复方案一:手动拼接正确的URL

修改Service中的请求URL,补充参数标识:

loadSubCategoriesFood(name: string): Observable<{ meals: Meal[] }> {
  return this.http.get<{ meals: Meal[] }>(
    `${this.recipies.listofsubcategories}filter.php?i=${name}`
  );
}

修改后生成的URL会是符合要求的格式:https://www.themealdb.com/api/json/v1/1/filter.php?i=Beef

修复方案二:使用HttpClient的参数配置(推荐)

利用Angular HttpClient自带的params选项,自动处理参数拼接和编码,更规范可靠:

import { HttpParams } from '@angular/common/http';

// ...

loadSubCategoriesFood(name: string): Observable<{ meals: Meal[] }> {
  const params = new HttpParams().set('i', name);
  return this.http.get<{ meals: Meal[] }>(
    `${this.recipies.listofsubcategories}filter.php`,
    { params }
  );
}

这种方式会自动生成正确的带参数URL,同时能处理参数值含特殊字符的场景,避免手动拼接的潜在问题。

内容的提问来源于stack exchange,提问作者Terry C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:10:31