【发布时间】:2017-07-14 20:51:42
【问题描述】:
我想使用 http.post 方法将 Ionic 2 应用程序中的数据发布到服务器,但服务器返回 undefined。
我曾尝试发送一次字符串,但结果是一样的。
这是 Angular 2 客户端代码:
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { RegisterPage } from '../register/register';
import { Http, Headers } from '@angular/http';
import { ToastController } from 'ionic-angular';
import { User } from '../../providers/user';
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage {
private accounts: Object[] = []
private headers: Headers;
private http;
private toast;
public email;
public password;
public user: User;
constructor(public navCtrl: NavController, public navParams: NavParams,
http: Http, public toastCtrl: ToastController) {
this.http = http;
this.toast = toastCtrl;
}
ngAfterViewInit() {
}
toastMessenger(res : string) {
let toast = this.toast.create({
message: res,
duration: 3000
});
toast.present();
}
submit() {
let headers = new Headers();
headers.append("Content-Type", 'application/json');
console.log(this.email)
this.http.post('http://localhost:3000/validation', JSON.stringify(this.email), { headers: headers })
.subscribe(() => {
console.log("Dados enviados com sucesso");
});
}
changeToRegister() {
this.navCtrl.push(RegisterPage);
}
}
这是我的后置动词路线:
app.post('/validation', function(req, res) {
console.log(req.body); // => undefined
});
【问题讨论】:
-
您的
console.log(this.email)返回什么?据我从上面的代码中可以看出,您实际上从未设置过this.email,所以它会像您所看到的那样发布undefined。 -
"this.email" 返回用户输入:
(input)="email = $event.target.value" -
@YagoAzedias 检查 req.query 部分
-
你能发送来自其他客户端的请求吗?
-
使用 "req.query" 服务器返回一个 void javascript 对象 => { }
标签: node.js angular typescript ionic2