这个问题在这里已有答案:
我正在开发一个有角度的6+项目,它在某些部分使用角度http服务来对服务器进行一些api调用,我尝试将这些http服务转换为新的httpClient服务。
但我得到了一个奇怪的错误,我对错误一无所知。尝试部分如下。你能帮帮我吗?
工作的http示例:
此示例工作正常并正确响应
public userLogin(userData: LoginModel): Promise<any> {
let options = new RequestOptions({
headers: new Headers({
"Content-type": "application/json"
})
});
const model: LoginRequestModel = {
EncryptedUsername: this.helper.encrypt(userData.UserName),
EncryptedPassword: this.helper.encrypt(userData.Password),
Stamp: ""
}
let data = JSON.stringify(model);
return this.http.post(this.api + "login", data, options).toPromise();
}
不工作的httpClient示例:
我在控制台上出错了;
userLogin2(userData: LoginModel): Observable<any> {
let options = {
headers: new HttpHeaders({
"Content-type": "application/json"
})
};
const model: LoginRequestModel = {
EncryptedUsername: this.helper.encrypt(userData.UserName),
EncryptedPassword: this.helper.encrypt(userData.Password),
Stamp: ""
}
let data = JSON.stringify(model);
return this.httpClient.post<any>(this.api + "login", data, options);
}
和错误:
body: {error: "Collection 'v1' not found"}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}
status: 404
statusText: "Not Found"
url: "https://converting.azurewebsites.net/api/v1.0/login"
这个问题与Angular InMemoryWebApi
有关
如果您在项目中使用此模拟服务,它将重新路由您的实际请求并导致404 not found
错误。对于解决方案,您必须从app.module.ts file
注释掉您的内部Web api行