Как создать URL-адрес с амперсандом в одном из значений параметров запроса? - PullRequest
4 голосов
/ 24 марта 2011

У меня есть ввод, comment, который содержит "&".Как я могу использовать метод get jQuery ajax с этим значением?

Например:

index.php?comment=i&you

, где фактическое значение поля комментария равно i&you, неправильно использовать в качествеURL-адрес.

Ответы [ 4 ]

3 голосов
/ 24 марта 2011

Передать параметры в виде карты во 2-й аргумент (данные).

$.get("index.php", {"comment": "i&you"});

jQuery позаботится о кодировании URL.

Смотри также:


Или, если эти значения на самом деле взяты из формы, просто сделайте

$.get("index.php", $("#formid").serialize());

Смотри также:

1 голос
/ 24 марта 2011

Я бы предложил использовать метод serialize , чтобы добавить данные к вашему запросу.Serialize правильно закодирует ваши данные для вас.

$.get( 'index.php', $('form').serialize(), function(result) {
   // do something with result
});

Или, если просто отправить один вход обратно:

$.get( 'index.php', $('input#comment').serialize(), function(result) {
   // do something with result
});
1 голос
/ 24 марта 2011

Используйте функцию escape():

var comment = 'i&you';
var url = 'index.php?comment=' + escape(comment); #=> index.php?comment=i%26you

Edit:

Пропустил часть jQuery, извините. Для звонка $.ajax() сделайте:

$.ajax('index.php', {
    'data': { 'comment': 'i&you', ... }
    ...
});

Передавая объект (или строку) свойству data в аргументе options ( документация ), вы можете убедиться, что ваши данные должным образом экранированы без необходимости делать это самостоятельно .

0 голосов
/ 24 марта 2011

Я не совсем уверен, что вы имеете в виду, но чтобы выполнить вызов AJAX с помощью jQuery, вы должны сделать следующее:

$.ajax({
  url: "index.php?comment=i&you",
  context: document.body,
  success: function(){
    // Whatever you need to do goes in this function
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...