angular - 在角度 7 中解析期间的 Http 失败
问题描述
当用户尝试通过输入字符进行搜索时,我正在实现一个剑道下拉菜单并尝试调用一个 api。我可以看到正在对 api 进行调用,并且 api 正在返回过滤后的值,但是数据没有被绑定。
我可以看到发生错误并执行了 err 块。该错误指出
解析http://localhost:54455/fund/HFRFundSearch?term=as时的 Http 失败
有人可以告诉我问题是什么。是不是因为api正在返回一个对象
这是我的代码
<label for="inputFax" class="col-md-2 col-form-label header">Third Party Database Feed</label>
<div class="col-md-3">
<div *ngIf="!EditMode">{{FundDetails.HFRFundName}}</div>
<kendo-dropdownlist style="width:350px" [(ngModel)]="HFRFunds" [data]="HFRFunds" [filterable]="true" [valuePrimitive]="true" textField="text" valueField="id" (filterChange)="handleFilter($event)"></kendo-dropdownlist>
</div>
零件
handleFilter(value) {
if (value.length >= 2) {
this.fundService.getHFRFund(value)
.subscribe(data => {
this.HFRFunds = data;
},
err => {
this.Error = 'An error has occurred. Please contact BSG';
},
() => {
});
}
}
服务
constructor(
private http: HttpClient,
private config: AppConfig)
{ }
getHFRFund(value : string) {
let pars = new HttpParams();
pars = pars.append('term', value.toString());
const url = this.config.api.hfrFundSearch;
return this.http.get(url, { params: pars, withCredentials: true });
}
api。
[HttpGet]
[AuthorizationLevel(AuthAccessLevel.Read)]
public object HFRFundSearch(string term)
{
try
{
var hfrFunds = new List<object>();
if (!string.IsNullOrEmpty(term))
{
term = term.ToLower();
hfrFunds.AddRange(GetViewService<V_HFR_FUND>()
.Where(x => x.HFR_FUND_NAME.ToLower().StartsWith(term))
.Take(10)
.OrderBy(x => x.HFR_FUND_NAME)
.Select(x => new { id = x.HFR_FUND_ID, text = x.HFR_FUND_NAME })
.ToList());
}
return hfrFunds;
}
catch (Exception ex)
{
_logger.Error(ex);
return ex;
}
}
解决方案
// API
[HttpGet]
[AuthorizationLevel(AuthAccessLevel.Read)]
public object HFRFundSearch(string term)
{
try
{
var hfrFunds = new List<object>();
if (!string.IsNullOrEmpty(term))
{
term = term.ToLower();
hfrFunds.AddRange(GetViewService<V_HFR_FUND>()
.Where(x => x.HFR_FUND_NAME.ToLower().StartsWith(term))
.Take(10)
.OrderBy(x => x.HFR_FUND_NAME)
.Select(x => new { value = x.HFR_FUND_ID, text = x.HFR_FUND_NAME })
.ToList());
}
return hfrFunds;
}
catch (Exception ex)
{
_logger.Error(ex);
return ex;
}
}
// component
// component
import { map } from 'rxjs/operators';
handleFilter(value) {
if (value.length >= 2) {
this.fundService.getHFRFund(value).subscribe(
data => {
this.HRFunds = data;
});
}
}
推荐阅读
- asp.net-core - 以编程方式生成请求验证令牌
- c# - .net core 3.1 clientFactory在请求正文中传递json字符串
- node.js - 在带角度的电子中使用 SQL Server 时出错:__webpack_require__(...) 不是函数
- asp.net - Bootstrap3 将 asp.net 文本框并排对齐到 asp.net RadioButtonList 特定列表项
- c# - net core 3.1 Bearer 401 未授权
- php - laravel 7 - 在现有表上添加新图像
- node.js - 能够连接到 redis 但设置/获取超时
- python - 如何在 django 模板中使用 pk 检查对象是否存在?
- javascript - 当所有特定元素都显示时触发的 JavaScript 事件:无
- css - Bootstrap 动态设置徽章的颜色