我正在使用javascript从浏览器中检索url参数并将其传递给运行sockets.io的服务器。它完全按预期工作,但我想抓住参数而不需要问号或等号。
而不是/?var=
我希望它是:/var-
或/var_
等。
有没有一种很好的方法可以在没有服务器端URL重写的情况下完成此任务?
当前代码:
var urlParam = location.search.split("var=")[1]; // get the url parameter http://localhost/?var=[some url parameter value]
if (urlParam == null) {
socket.emit('newRoom');
} else {
socket.emit('urlParam', urlParam);
}
谢谢!
答案 0 :(得分:2)
当然可以抓住网址。
window.location.href
返回网址的完整路径。您可以使用.split('/')
所以windows.location.href.split('/')
会给你一个字符串数组,其中每个元素都是url的不同部分。例如,在example.com/page/var1/var2
上运行它会为您提供一个数组["example.com", "page", "var1", "var2"].
请记住,您的服务器仍需要知道如何将请求发送到example.com/page/var1/var2。因此,如果var1和var2是example.com/page的变量,那么您的服务器需要知道如何提供example.com/page。
答案 1 :(得分:0)
-korn -bash -tsh