IONIC 3应用程序不正确发布JSON

我希望能得到这个帮助。 以下是我写的用于发送电子邮件和密码的代码。 这一切都看起来不错,直到它到达服务器。 服务器将其处理为:

{ '{"email":"email@gmail.com","pin":"1234"}': '' } 

我不确定问题出在哪里。 我已经尝试通过邮递员发送电子邮件和pin,并且没有问题。 我甚至包含了POSTman创build的头文件(Content-Type:application / x-www-form-urlencoded),以确保我以同样的方式发送所有的信息。

这是我的离子代码:

 export class LoginPage { baseURL: string = 'http://localhost:1000/api' data: any; constructor(public navCtrl: NavController, public navParams: NavParams, private http: Http) { } login(email, pin) { let headers = new Headers(); headers.append('Content-Type', 'application/x-www-form-urlencoded'); let options = new RequestOptions({ headers: headers }); let body = JSON.stringify({ email: email, pin: pin }); console.log(body); //This looks just like it's supposed to this.http.post(this.baseURL + '/authenticate', body, options) .map(res => res.json()) .subscribe(data => { console.log(this.data); }, error => { console.log("Oooops!"); }); }; } 

这里是我的服务器的代码,以防万一我搞砸了那里的东西。

 // =========================== // get the packages we need == // =========================== var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var morgan = require('morgan'); var mongoose = require('mongoose'); var bcrypt = require('bcryptjs'); var router = express.Router(); var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens var config = require('./config'); // get our config file var models = require('./app/models/models'); // ======================= // configuration ========= // ======================= var port = process.env.PORT || 1000; mongoose.connect(config.database); // connect to database app.set('secret', config.secret); // secret variable // use body parser so we can get info from POST and/or URL parameters app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies app.use(bodyParser.json()); // support json encoded bodies // use morgan to log requests to the console app.use(morgan('dev')); // ======================= // routes ================ // ======================= // basic route app.get('/', function (req, res) { res.send('Hello! The API is at http://localhost:' + port + '/api'); }); var apiRoutes = express(); // apply the routes to our application with the prefix /api app.use('/api', apiRoutes); // API ROUTES ------------------- //=============================== // Log a user into their account. //=============================== apiRoutes.post('/authenticate', function (req, res) { console.log(req.body); //here I'm getting: { '{"email":"email@gmail.com","pin":"1234"}': '' } res.json(req.body); }); app.listen(port); console.log('Stuff happens at http://localhost:' + port); 

 import { Http, URLSearchParams } from '@angular/http'; //make url params let body = new URLSearchParams(); body.append('email', 'test@tst.com'); body.append('pin', '123456'); 

使用URLSearchParams代替正文,并检查