我怎样才能使用XMLHttpRequest()不断地发送数据到我的网站的另一个页面?

我正在node.js和express.js工作,并试图find最快的方式,我可以处理这个问题。

我的网站上的一个页面正在接收var lat和经度var long位置信息,我想不断地将这些信息发送到我网站上的另一个页面。 我的代码是非常不完整的,但任何指导都非常有帮助。 我目前得到错误http://localhost/driver/save_position Failed to load resource: net::ERR_CONNECTION_REFUSED和更高版本浏览器控制台中的POST http://localhost/driver/save_position net::ERR_CONNECTION_REFUSED 。 我的代码如下。

这是在一个网页上运行的JavaScript文件中的代码,我想将信息发送到我的其他页面,以便它可以不断更新。

 function sendCoordinates(lat, lon){ var xhttp = new XMLHttpRequest(); xhttp.open("POST", "http://" + window.location.hostname + "/driver/save_position", true); xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhttp.send('lat=' + lat + '&lon=' + lon); } 

在我的路由我有一个单独的文件

 router.post('/driver/save_position',function(req, res, next){ console.log(req) }) 

我非常适合所有这些想法的初学者,所以任何build议,帮助和解决scheme都非常感谢! 感谢您的任何帮助!

一个网页不会直接发送数据到另一个网页,除非它在同一浏览器中。 所以,既然你说的是“你网站上的另一个页面”,我假设你正在谈论的是让数据出现在其他一些用户的其他页面上。 如果这就是你的意思,那么这只是浏览器JavaScript的function。 另外,当你说“发送到网页”时,你的意思不是很清楚,因为这不是真正的目的地。

你可以做的是发送一个请求到服务器,你可以要求该服务器通知其他连接的用户/页面。 如果其他用户/页面有一个活的webSocket连接到服务器,那么服务器可以通过webSocket发送一个消息给那个用户/页面。

如果其他用户/页面没有与同一个服务器的实时webSocket连接,那么从服务器获取这个信息的唯一方法就是用它自己的Ajax调用从服务器请求这些信息。 服务器将不得不存储该信息,所以当有人要求时,它可以提供信息。


如果您要问如何从浏览器中的一个窗口将数据发送到同一浏览器中的另一个窗口,则可以使用postMessage()在两个协同工作的窗口之间在同一个浏览器中发送数据。