在Angular中发送头参数

时间:2018-01-05 12:33:30

标签: javascript angular ionic-framework

我使用此方法登录:

  doLogin(username, password){
    return this.http.post(Config.BASE_URL + '/login',{
      username: username,
      password: password

    })
  }

我想将header参数添加到此范围:

  doLogin(username, password){
    return this.http.post(Config.BASE_URL + '/login',{
      username: username,
      password: password,
      headers: {
        'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
      }

    })
  }

我检查了控制台,它没有发送标头。怎么了?我该如何解决?

5 个答案:

答案 0 :(得分:1)

你需要在一个叫做标题的Json变量中发送你的Headers,如:

return this.http.post(Config.BASE_URL + '/login', body, { headers: this.headers });

你正在发送你身体内的标题。

答案 1 :(得分:0)

使用Angular的http模块中的Headers

import { Http, Headers } from '@angular/http';
let header1 = 'test';
let header2 = 'test2';
let headers = new Headers();
headers.append('header1', header1);
headers.append('header2', header1);

doLogin(username, password){
    return this.http.post(Config.BASE_URL + '/login',{
      username: username,
      password: password,
      headers: headers
    })
  }

答案 2 :(得分:0)

您的代码存在的问题是您正在发送正文中的标题。请尝试以下代码段

doLogin(username, password){
     var headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')

    return this.http.post(Config.BASE_URL + '/login',{username:username,password:password},{headers:headers}) 

  }

如果您想使用x-www-form-urlencoded发帖 您可以使用URLSearchParams作为请求的正文,而angular会自动将内容类型设置为application/x-www-form-urlencoded并正确编码正文。

let body = new URLSearchParams();
body.set('username', username);
body.set('password', password);

this.http.post(Config.BASE_URL + '/login', body).map(...);

答案 3 :(得分:0)

如果对发送身份验证凭据感兴趣

    let headers = new Headers();
    headers.append('Authorization' , 'Basic ' +
        btoa(username
                + ':' + password));
    headers.append('Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8');
    this._http.get(url , {headers:headers});

答案 4 :(得分:0)

let headers = new Headers();
headers.append('Content-Type', 'application/json');

let options = new RequestOptions({ headers: headers });
return this.http.post(Config.BASE_URL + '/login',{
      username: username,
      password: password
    } , options)