我有nodejs服务器正在侦听并等待发布请求,http://localhost:3000/api/updateLocation
服务器已通过PostMan测试了JSON发布请求,并且一切正常,nodejs输出“ Got数据”到控制台。但是Angular2似乎没有将数据发送到服务器。屏幕截图PostMan
有什么问题?
NodeJS server.js:
api.post('/updateLocation', function(req, res){
//res.send(req.body);
console.log('Got data');
});
离子2 home.ts:
import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import {Service} from '../../service';
@Component({
templateUrl: 'build/pages/home/home.html',
providers: [Service]
})
export class HomePage {
constructor(private navCtrl: NavController, service: Service) {
setInterval( ()=> {
service.sendLocation({ x: '46.303344', y: '28.655268' });
}, 1000);
}
}
service.ts:
import {Injectable} from '@angular/core';
import {Http, Headers} from '@angular/http';
@Injectable()
export class Service {
http : any;
url : string = 'http://localhost:3000/api/updateLocation';
constructor(http: Http){
this.http = http;
}
sendLocation(location){
let body = JSON.stringify(location);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post(this.url, body, { headers });
}
}
您需要订阅http操作,否则实际上不会触发该请求。在使用之前,它一直保持“冷”状态。
如果您的api返回json响应,则此方法有效,例如:
this.http.post(this.url, body, { headers }).subscribe(
data => {
console.log(data.json());
}
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句