Angular Http与HttpClient

时间:2019-04-20 01:16:03

标签: angular angular-http angular-httpclient

我正在研究一个有角度的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"

1 个答案:

答案 0 :(得分:0)

问题与 Angular InMemoryWebApi

有关

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

中注释掉内部Web API行