我使用HTML5地理位置检索用户纬度/经度,并想将其返回到该服务器将与之比较的店铺纬度/ LNGS COORDS和返回列表最近的五个。 地理位置API是没有问题的,在所有返回的纬度/经度cooridinates客户端,我不能找到一种方法,在同一时间返回到服务器的信息并呈现了新的一页。 我已经使用$ .POST方法尝试,在安装到COORDS数据:对象。发送HTML5地理位置结果反馈给节点/ Express服务器
客户端的JavaScript
function sendToServer(lat,lng){
$.ajax({
type: "POST",
url: "/search",
data: {lat: lat, lng: lng},
success: function(data){
alert('Successful');
},
});
}
我可以从电话的console.log服务器端的COORDS正在顺利通过看。 server.js
app.post('/search', function(req,res){
console.log(req.body); <-- does show lat/lng coords
res.render('./pages/search' , {
shops: coords.getNearestFive(req.body) <-- just to give idea
});
});
我只通过商店与渲染,给你什么,我打算用数据来一个想法对象,我没有试过呢。
'./pages/search'不会呈现给客户端,我已阅读其他帖子,建议使用$ .ajax不是一个很好的方法来尝试和执行此操作,但我找不到解决方案。我已经使用“GET”方法试过,但我不能检索纬度/经度COORDS从服务器端,即使页面不正确加载。 奇怪的是我一直在使用谷歌网络工具检查请求/响应和repsonse确实显示渲染“./pages/search”,这不是反映在浏览器虽然。
这是我的锚,作为一个按钮的作用是让COORDS
<a href="/search" class="geoSearch"> Find My Location! </a>
有谁知道,我怎么会通过,并获得坐标,以及能够加载所选择的页面?由于
**** ****更新
我设法通过在setTimeout函数使用req.query和包裹res.render()调用来获取纬度/经度细节了从服务器端这确实感觉很尴尬。
app.get('/search', function(req,res){
console.log(req.query); <-- logs passed lat/lng
res.render('./pages/search');
});
客户方单击处理
$('.geoSearch').on('click', function(){
getCoords();
});
客户方Ajax请求
function sendToServer(lat,lng){
$.ajax({
type: "GET",
url: "/search",
contentType: "application/json",
data: JSON.stringify({lat: lat, lng: lng}),
success: function(data){
alert('Successful');
},
});
}
Serverside集团
app.get('/search', function(req,res){
var beQuick = req.query;
console.log(beQuick);
setTimeout(function(){
res.render('./pages/search');
},1000);
});
是否有允许req.query更好的方式来填补变量服务器端没有h在渲染新页面时通过setTimeout添加延迟?谢谢