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() }
}
});
}
方法在邮递员中工作正常,但是,从ionic2发送相同的请求时会产生错误。获取方法工作正常,但后期存在一些问题。请求在 post 中发送空参数并生成错误 400 错误请求。
您调试了请求,并且它以空正文发送?我不确定这是否真的有所作为,但我将应该作为第二个参数直接发送到服务器的对象传递给 post(( 方法,而无需使用 JSON.stringify((。您是否已经尝试省略该部分?
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)); }
使用表单数据发送数据解决了我的问题
let body = new FormData(); body.append("login_email",email); body.append("login_password",password);