Angular Http vs. HttpClient [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在开发一个有角度的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 angular-http angular-httpclient
1个回答
0
投票

这个问题与Angular InMemoryWebApi有关

如果您在项目中使用此模拟服务,它将重新路由您的实际请求并导致404 not found错误。对于解决方案,您必须从app.module.ts file注释掉您的内部Web api行

© www.soinside.com 2019 - 2024. All rights reserved.