【发布时间】:2018-01-24 00:44:31
【问题描述】:
我正在尝试从 Angular 使用 Web API。
我使用 Fiddler 测试了该服务,它运行良好。来自客户端的问题。
我尝试使用 Angular 进行以下操作(从 Angular.io 网站采用):
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from "@angular/core";
import { Observable } from "rxjs/Observable";
import { tap } from 'rxjs/operators/tap';
import { Hero } from "../hero";
@Injectable()
export class HeroService {
constructor(private http: HttpClient) {
}
public getHerosData(): Observable<Hero[]> {
var url: string = 'http://localhost/WebApplication2/api/Heros';
return this.http.get<Hero[]>(url).pipe(
tap(heros => this.log('Heros fetched.'))
);
}
log(message: string): any {
// log the message.
}
}
我在使用 Web API 时看到以下错误:
任何帮助都会被占用。
回答: 使用 InMemoryDataService 在我删除使用后阻止调用 Web API,Web API 被成功使用。
【问题讨论】:
-
究竟应该为该 API 提供什么服务?你确定它在正确的 URL 上吗?你不应该有一个端口吗?我建议您在询问之前至少将问题缩小到服务器端或客户端;客户是否提出了预期的要求?使用其他客户端(例如 Postman、CURL)时,服务器是否正确响应了该请求?
-
服务器端没问题。我使用 Fiddler 测试了 URL。来自客户端的问题。
-
您阅读了邮件吗?它似乎在寻找
api集合,而不是Heros(注意:复数应该是Heroes)集合。这表明路线是错误的;你确定它和你测试的另一个一样吗? -
api:从“Route.config”文件自动写入。我用一些图片更新了问题。