ionic2框架工作在帖子中发送空参数(400 Badrequest)

时间:2017-07-03 09:00:38

标签: angular ionic-framework ionic2

login.ts

onlogin() {
    let login_email = "vvvv@gmail.com";
    let login_password = "123456"
    this.body = {
        login_email: login_email,
        login_password: login_password
    };

    this.auth.login(this.body).subscribe(data => {
        this.result = data
        console.log(data);
    });
}

authservice.ts

login(param) {
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });
    return this.http.post(this.apiUrl + '/login', JSON.stringify(param), options)
    .map((res: Response) => {
        if (res) {
            return { status: res.status, json: res.json() }
        }
    });
}

方法在postman中工作正常但是,虽然从ionic2发送相同的请求正在生成错误。获取方法工作正常但是post中存在一些问题。请求在post中发送空参数并生成错误400 Bad request

2 个答案:

答案 0 :(得分:0)

您调试了请求,它是否以空体发送?我不确定这是否真的有所作为,但我将应该发送到服务器的对象作为第二个参数直接传递给post()方法,而不使用JSON.stringify()。你有没有尝试省略那部分?

答案 1 :(得分:0)

<强> Login.ts

  

onlogin()       {

const email = 'xxxxxx@gmail.com';
const password = '123456';
let body = new FormData();
body.append("login_email",email);
body.append("login_password",password);

        console.log(body); 
        this.auth.login(body).subscribe(data => {this.result = data;
       this.navCtrl.push(HomePage,{result:this.result});
    });


}

<强> authservice.ts

   login(param) 
  {
   const headers = new Headers({'ContentType':'application/formdata'});
   return this.http.post('/api',param,headers)
                .map(this.extractDataLogin)       
                .catch(error => this.handleError(error));
   }

使用formdata发送数据解决了我的问题

let body = new FormData();
body.append("login_email",email);
body.append("login_password",password);