Javascript 在将每个用户的用户名设置为搜索参数后,如何为其加载页面?
长话短说,我想到了如何“给每个用户自己的页面”。在instagram上,用户的页面应该是https:instagram.com/{username},在我的项目中,在将用户名作为url参数传递并将其余数据放入查询中之后,基本相同,这样我就可以调用它。当我点击每个用户的页面时,我会被重定向到“用户页面”,我会得到一个错误,上面写着“BadRequestError:Bad Request” 这是单击用户时发生的情况(参数被添加到url)Javascript 在将每个用户的用户名设置为搜索参数后,如何为其加载页面?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,长话短说,我想到了如何“给每个用户自己的页面”。在instagram上,用户的页面应该是https:instagram.com/{username},在我的项目中,在将用户名作为url参数传递并将其余数据放入查询中之后,基本相同,这样我就可以调用它。当我点击每个用户的页面时,我会被重定向到“用户页面”,我会得到一个错误,上面写着“BadRequestError:Bad Request” 这是单击用户时发生的情况(参数被添加到url) 我做错了什么/为什么没有显示单独的页面?我不确定您为什么使用“
我做错了什么/为什么没有显示单独的页面?我不确定您为什么使用“%”,但应该将其更新为“&”
function userClicked() {
var i = 0;
const queryString = window.location.href;
console.log(queryString.concat('/', username));
window.location = queryString.concat('/', 'username=', username, '&', 'name=', fln)
}
此外,为了简单起见,我更喜欢下面的代码
function userClicked() {
var i = 0;
window.location = `${window.location.href}/username=${username}&name=${fln}`
}
除了SoftDev的帖子: 首先,您应该将
%
替换为&
。原因是%用于url编码。%例如,20可能表示空格,%21可能表示感叹号。符号?
和&
用于指示查询参数。其中第一个查询参数由?
引导,所有后续查询参数由和引导
例如:https://stackoverflow.com/index.html?name=test&username=larssy1&age=99
再次回到(从SoftDev复制/粘贴)(请注意,我确实将/
更改为?
)
function userClicked() {
var i = 0;
const queryString = window.location.href;
console.log(queryString.concat('/', username));
window.location = queryString.concat('?', 'username=', username, '&', 'name=', fln)
}
但是,除此之外,最好查找window.location.href
。的含义,因为这表明当前正在访问的页面
例如:此stackoverflow主题的窗口.location.href
为”https://stackoverflow.com/questions/63734257/how-do-i-load-a-page-for-each-user-after-setting-their-username-as-a-search-para“
在您的代码中,这将导致我们导航到https://stackoverflow.com/questions/63734257/how-do-i-load-a-page-for-each-user-after-setting-their-username-as-a-search-para/username=test&name=larssy1
有关window.location
的所有可能属性和含义,您可以参考此网页:或此Mozilla网页:
我猜你想使用主机名
或源代码
我需要设置路由吗?这是为了什么?哦,我明白了。你解释得很好:)。谢谢:)
function userClicked() {
var i = 0;
const queryString = window.location.href;
console.log(queryString.concat('/', username));
window.location = queryString.concat('?', 'username=', username, '&', 'name=', fln)
}