Basic Auth不使用Angular2

时间:2017-12-14 12:22:39

标签: angular basic-authentication

我有基本身份验证的帖子请求。

public login = (resrc: string, item: any): Observable<any> => {
        this.headers.append('Authorization', 'Basic ' + btoa(item['userName']+':'+item['password']));
        return this._http.post(this._beconfig.Server + "login/api/" + resrc, {headers: this.headers})
            .timeoutWith(5000, Observable.throw(new Error('Request timed out.')))
            .map((response: Response) => { return response; })
            .catch(this.handleError);
    }

我的浏览器仍会提示输入用户名和密码。

你能帮忙解决问题吗?

1 个答案:

答案 0 :(得分:0)

您正在请求正文中而不是选项部分发送标题。

如果你使用的是角度Http模块,那么这里是实现或post方法:

var randomized = numbers45.OrderBy(o => Guid.NewGuid().ToString());

因此,您需要在第三个参数中使用RequestOptions对象,您可以在其中放置标题:

var draws = randomized.Take(5).ToArray;

如果你在Angular 4.3+上使用HttpClient,post方法的实现有点不同:

post(url: string, body: any, options?: RequestOptionsArgs): Observable<Response>;

要使用它,您应该编写如下代码:

let options = new RequestOptions({ headers: this.headers });
this._http.post(this._beconfig.Server + "login/api/" + resrc, {}, options)