Пробелы в запросе ajax с помощью jquery - PullRequest
10 голосов
/ 05 января 2010

Я делаю ajax-запрос, и у меня есть некоторые проблемы, это мой код jquery:

var url = "http://www.domain.com/SearchService.svc/search?keyword=my search keywords";
    $.ajax({
        type: "GET",
        url: url,
        dataType: "json".......
.....

При выполнении этого запроса у меня иногда появляются пустые места в моем поиске (var url), а затем ключевые слова обрезаются, поэтому в приведенном выше примере, например, он просто ищет «my». Я понимаю, что это довольно простой вопрос, и это должно быть простым решением. Просто не смог найти решение ...

Спасибо за вашу помощь!

Ответы [ 4 ]

16 голосов
/ 05 января 2010

Вы можете использовать encodeURI:

var url = encodeURI("http://www.domain.com/SearchService.svc/search=my search keywords");

Это кодирует URL и преобразует пробелы и любой другой «небезопасный» символ для использования URL.

См. Также encodeURIComponent для безопасного кодирования данных для вставки в URI.

2 голосов
/ 27 декабря 2012

Вы могли бы сделать

var url = "http://www.domain.com/SearchService.svc/search?keyword=" 
    + encodeURIComponent("my search keywords");

Хотя escape () может сработать и для вас, существуют ситуации, в которых работает только encodeURIComponent (), например, для символов & = + и т. Д.

2 голосов
/ 05 января 2010

Вы можете избежать поискового ключевого слова в URL, но правильнее всего добавить search в качестве параметра к запросу ajax.

var url = "http://www.domain.com/SearchService.svc/search=my search keywords";
    $.ajax({
        type: "GET",
        url: url,
        data: { "search" : "my search keywords" }
        dataType: "json".......
1 голос
/ 05 января 2010

Просто конвертируйте пробелы в формат URL. Для каждого символа пробела используйте% 20 вместо:

var url = "http://www.domain.com/SearchService.svc/search=my%20search%20keywords";
    $.ajax({
        type: "GET",
        url: url,
        dataType: "json".......
.....

Или, если вы хотите сделать это более автоматическим способом, просто используйте функцию javascript escape(), как предложил Феликс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...