Получить запрос через JavaScript с перезагрузкой страницы, проблема перезаписи URL - PullRequest
0 голосов
/ 18 мая 2011

Я использую переписывание URL в одном из моих проектов, и я хотел бы иметь возможность выполнять запросы через окно поиска с помощью javascript, при событии типа ввод, захватывая значение этого поля поиска и передавая его через 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. как я могу очистить строку q с помощью JS, чтобы избежать использования строки, не закодированной в URL, с пробелами или специальными символами? (конечно, это не сработает, если я введу любое из этих значений). Я попробовал функцию escape, но она все еще не работает.
  2. это хорошая идея, чтобы выполнить запрос GET таким образом?

Спасибо

1 Ответ

2 голосов
/ 18 мая 2011
  1. Не используйте побег. Используйте encodeURIComponent.

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

  2. Совершенно хорошо ... хотя я бы не использовал перезапись URL-адресов параметров для поиска.

...