如何在角度4的http post请求中传递用户名和密码

时间:2017-08-09 10:25:11

标签: angular api http

我需要使用angular http post请求向登录api发送用户名和密码。这是我的代码:

const params = new URLSearchParams();
    params.set('username', username);
    params.set('password', password);
    this.headers = new Headers({ 'content-type': 'application/x-www-form-urlencoded', 'authorization': 'Basic' });
    this.options = new RequestOptions({headers: this.headers, method: RequestMethod.Post, params: params });
    return this.http.post(this.config.baseUrlAuthSvc + this.config.login, this.options)
        .map((response) => { return response; })

我收到以下错误:

  

请求网址:http://111.22.333.44:55/api/token   请求方法:选项   状态代码:400错误请求   远程地址:172.31.131.13:85   推荐人政策:no-referrer-when-downgrade

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

显然,在帖子请求中,不可能在请求选项中传递参数。 http.post请求中的第二个参数是body,所以我传递了字符串'username = xyz& password = 123'作为第二个参数,它运行正常。

关键是,如果它是一个http post请求,请不要使用params。

答案 1 :(得分:-1)

你能用这种方式试试吗

return $http.post(URL, data, {
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        }
    }).success(function (response) {
        return response;
    });

数据是输入参数,例如如下

var data = "username=" + username + "password=" + password;