Javascript 以角度发送标头参数

Javascript 以角度发送标头参数,javascript,angular,ionic-framework,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_

我正在使用此方法登录:

  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'
      }

    })
  }

我检查了控制台,它没有发送标题。发生了什么?如何解决此问题?

您需要在名为Headers的Json变量中发送头,如:

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


您正在体内发送标题。

使用http模块的
标题:

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
    })
  }

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

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(...);

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

    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});

this.http的类型是什么?
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)