gpt4 book ai didi

node.js - Angular 2 服务 http post 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:10 25 4
gpt4 key购买 nike

我有nodejs服务器监听并等待post请求http://localhost:3000/api/updateLocation服务器使用 PostMan 测试 JSON post 请求,一切正常,nodejs 向控制台输出“获取数据”。但 Angular2 似乎没有向服务器发送数据。 Screenshot PostMan

有什么问题吗?

NodeJS 服务器.js:

api.post('/updateLocation', function(req, res){
//res.send(req.body);
console.log('Got data');
});

Ionic 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);
}

}

服务.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());
}
);

关于node.js - Angular 2 服务 http post 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com