我有一个node/express/stocket.io应用程序。当我在android 4和以前版本上运行该应用程序时,它运行得很好。然而,在android 5.0+及更高版本中,每次我的应用程序加载并执行其初始路由(/)时,它都会发送两次路由功能。第二次执行时,请求正文中没有任何内容,这导致应用程序出错。
app.post('/', someFunction);
我记录了这个函数req.url,并注意到它在android 5.0+中两次命中someFunction,但以前的任何函数只命中一次并正常执行。
有人想过为什么新版本的安卓会出现这种情况吗?而不是其他人?此外,这适用于iOS。
这个问题与sockets.io无关。它与较新的android操作系统web视图如何处理一些JS有关。在与该路由相关的EJS模板中,我有一个
window.location.reload();
这适用于iOS和旧的android操作系统,但新版本不喜欢它。我可以切换到:
window.location.href = window.location.href;
这似乎很好用。