我正在尝试获取用户的位置并将其发送到我的服务器,以便进行一些 API 调用。我得到了用户的当前位置,这很好,但它没有发布到服务器,我不知道为什么。你能看看我的代码并帮我弄清楚吗。
后端
index.routes.js
router.post('/currentLatLong', ctrlEvent.currentLatLong);
event.controller.js
module.exports.currentLatLong = (req, res) => {
console.log('recieved');
this.currentLoc = req.body;
console.log('this.currentLoc', this.currentLoc);
}
前端
服务
constructor(private data: DataService, private http: HttpClient) { }
getUserLocation() {
/* locate the User */
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(position => {
this.currentLat = position.coords.latitude;
this.currentLng = position.coords.longitude;
console.log('position.coords.latitude', this.currentLat);
this.data.latitudeSource.next(this.currentLat);
this.data.longitudeSource.next(this.currentLng);
const currentLatLong = {
latitude: this.currentLat,
longitude: this.currentLng
};
console.log('currentLatLong', currentLatLong);
return this.http.post(environment.apiBaseUrl + '/currentLatLong',
currentLatLong);
}, err => {
console.log(err);
return false;
});
} else {
console.log('bad');
return false;
}
}
最佳答案
在angular端,需要调用subscribe()
方法。调用 subscribe()
方法执行可观察对象,这是发起请求的原因。
this.http.post(environment.apiBaseUrl + '/currentLatLong', currentLatLong)
.subscribe(
res => {
console.log(res);
},
err => {
console.log(err);
}
);
在您对该方法返回的可观察对象调用 subscribe() 之前,HttpClient 方法不会开始其 HTTP 请求。
关于javascript - 获取位置的简单发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59459961/