Javascript 更改对节点服务器的ajax请求的路由和更新视图

Javascript 更改对节点服务器的ajax请求的路由和更新视图,javascript,jquery,ajax,node.js,Javascript,Jquery,Ajax,Node.js,我最近决定使用节点服务器作为代理,从前端对第三方公共api进行api调用。我已经成功地向我的节点端点发出了请求,然后又向第三方api发出了请求,并收到了我期望的响应,但现在我一辈子都搞不明白为什么url没有改变,窗口中的视图没有更新 下面是我在index.html中的按钮,它启动了整个交易: <a id="coords" type="button" class="btn btn-lg btn-default" href="#"> Send coords to backend</

我最近决定使用节点服务器作为代理,从前端对第三方公共api进行api调用。我已经成功地向我的节点端点发出了请求,然后又向第三方api发出了请求,并收到了我期望的响应,但现在我一辈子都搞不明白为什么url没有改变,窗口中的视图没有更新

下面是我在
index.html
中的按钮,它启动了整个交易:

<a id="coords" type="button" class="btn btn-lg btn-default" href="#">
Send coords to backend</a>
以下是我的路线定义:

app.get('/venues', function(request, response) {
  var latitude = request.query.latitude;
  var longitude = request.query.longitude;

  foursquare.getNearbyVenues(latitude, longitude, returnData);

  function returnData(data) {
    response.render('venues', data);
  }
});
我已经验证了传递到
returnData
的数据实际上是我从第三方api请求的对象

但是,页面和url保持单击之前的状态,并且所需页面(场馆)的HTML在inspector中显示为对ajax调用
/ventions
的响应


我在这里遗漏了什么?

您必须实际处理返回的数据

您只需将页面重定向到
/victions

$.ajax({
    url: "/venues",
    data: {
      latitude: latitude,
      longitude: longitude
    },
    success: function(data) {
      window.location.href = '/venues'
    }
});
但是这种做法违背了ajax的目的,并且将整个过程执行了两次,因此您可能只想将返回的HTML插入到某个地方

$.ajax({
    url: "/venues",
    data: {
      latitude: latitude,
      longitude: longitude
    },
    success: function(data) {
      $('#some_container').html(data);
    }
});

success(data)
处理程序中的
data
变量是
response.render('vinces',data)
from节点的结果所在

我不介意单击直接访问路由,并将所有逻辑放在后端路由定义中,但我不太确定如何传递浏览器位置数据。有什么建议吗?如果可以接受定期重定向,您可以获取位置,将其插入表单,然后以常规方式提交->
$.ajax({
    url: "/venues",
    data: {
      latitude: latitude,
      longitude: longitude
    },
    success: function(data) {
      $('#some_container').html(data);
    }
});