【问题标题】:How can I move information from my browser to my server-side code?如何将信息从浏览器移动到服务器端代码?
【发布时间】:2018-06-23 00:52:27
【问题描述】:

我正在尝试使用 Express 和 Node.js 制作一个简单的天气应用程序。为此,我需要自动获取用户的纬度和经度。我知道如何通过浏览器使用 HTML5 Geolocation (https://www.w3schools.com/html/html5_geolocation.asp) 做到这一点。但是,我不能从我的服务器端 Express 代码中执行此操作。如何创建从浏览器获取纬度和经度的客户端代码,然后将其发送到我的服务器端代码?

【问题讨论】:

  • 您是否在 Google 上搜索过如何将数据从客户端发送到服务器?

标签: javascript node.js express node-modules


【解决方案1】:

您可能会使用 Ajax 调用将 lat/long 从浏览器的 Javascript 代码发送到服务器。在现代浏览器中,您可以使用 fetch() interface 发送 Ajax 调用。 Ajax 的旧接口是XMLHttpRequest()

例子:

fetch('/api/setLatLong', {
  method: 'POST',
  body: JSON.stringify(latLongData)
}).then(result => {
   // process returned data here
});

在上面的示例中,您将 /api/setLatLong 替换为您希望服务器接收纬度/经度数据的任何 URL。然后,您在服务器上编写一个路由来接收该数据。您可能会通过使用 cookie 或登录会话将其与用户相关联,然后可能将纬度/经度数据存储在服务器上的用户会话中。

【讨论】:

  • 感谢您的回复。我的浏览器 Javascript 代码在哪里?它会与 HTML 文件相关联吗?
  • @GabeLevin - 它将位于加载到浏览器中的 HTML 文件中的 <script> 标记中。而且,通常 Ajax 调用将在网页中的某种用户事件上运行(按钮单击、按键、鼠标单击、页面加载等...)。
  • 所以我的脚本已经开始工作了。我得到坐标,然后将它们放在不可见表单内的两个字段中。我的脚本从那里提交表单,从而发送一个 POST 请求。我已经确认我的服务器端代码正在接收 POST 请求,但是如何获取在我的两个字段中找到的数据?
  • @GabeLevin - 有关示例,请参见 scotch.io/tutorials/…
猜你喜欢
  • 2015-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多