通过javascript进行GET查询,页面重新加载,url重写问题
我在我的一个项目中使用 url 重写,并且我希望能够通过带有 javascript 的搜索框执行查询,方法是在“输入输入”事件上获取此搜索框的值并通过 GET 请求传递它到另一个搜索页面。最终结果将是 Twitter 上的搜索地址(即 mysite.com/search/mykeyword)。我的代码如下:
$("#search-box").keyup(function(event) {
var code = (event.keyCode ? event.keyCode : event.which);
if (code == "13") { // ENTER
var q = $(this).val();
document.location.href = "/search/"+q;
}
});
2个问题:
- 如何使用JS清理q字符串以避免出现带有空格或特殊字符的非url编码字符串? (当然,如果我输入这些值中的任何一个,它都不起作用)。我尝试了函数 escape 但它仍然不起作用。
- 以这种方式执行 GET 查询是个好主意吗?
谢谢
I use url rewriting on one of my projects, and I would like to be able to perform queries through a search box with javascript by, on a "type enter" event, grabbing the value of this search box and passing it through a GET request to another search page. The end result would be a search address a la twitter (ie mysite.com/search/mykeyword). My code is the following:
$("#search-box").keyup(function(event) {
var code = (event.keyCode ? event.keyCode : event.which);
if (code == "13") { // ENTER
var q = $(this).val();
document.location.href = "/search/"+q;
}
});
2 questions:
- how can I sanitize the q string with JS to avoid having a non url encoded string with spaces or special characters? (of course it doesn't work if i type any of these values). I tried the function escape but it still doesn't work.
- is it a good idea to perform a GET query this way?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用转义。使用
encodeURIComponent
。var q =encodeURIComponent($(this).val());
完全没问题...尽管我不会在搜索参数上使用 URL 重写。
Don't use escape. Use
encodeURIComponent
.var q = encodeURIComponent($(this).val());
Perfectly fine... although I wouldn't use URL rewriting on the parameters to a search.