GET查询通过javascript与页面重新加载,url重写问题

GET query through javascript with page reload, url rewriting problem

本文关键字:加载 问题 重写 url 新加载 查询 javascript GET      更新时间:2023-09-26

>我在我的一个项目上使用url重写,我希望能够通过带有javascript的搜索框执行查询,方法是在"type enter"事件上,抓取此搜索框的值并将其通过GET请求传递到另一个搜索页面。最终结果将是推特上的搜索地址(即 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个问题:

  1. 如何使用 JS 清理 q 字符串以避免出现带有空格或特殊字符的非 URL 编码字符串?(当然,如果我键入任何这些值,它不起作用)。我尝试了函数转义,但它仍然不起作用。
  2. 以这种方式执行 GET 查询是个好主意吗?

谢谢

  1. 不要使用转义。 使用encodeURIComponent .

    var q = encodeURIComponent($(this).val());

  2. 完全没问题...尽管我不会对搜索参数使用 URL 重写。