Пробел JQuery ajax и амперсанд
Я делаю что-то вроде этого
var apiOptions = {
url: url,
dataType: 'jsonp',
type: "GET",
success: success
};
if(dataOptions) {
apiOptions.data = {
key: self.settings.key,
limit: self.limit,
address: dataOptions.address,
};
}
$.ajax(apiOptions);
И он отлично работает для всего, кроме тех случаев, когда у меня есть "и", поэтому пространство вокруг амперсанда. Таким образом, параметр запроса выглядит как "D+&+D,+enterprisess"
или D+%26+D%2C
. Затем он возвращает 404 на сервере.
Любая идея, что здесь делать?
Ответы
Ответ 1
Для параметров прохода с пространственным и специальным символом в ajax у вас есть функция escape и unescape.
var test = 'Exemplae Actão ç @#$%$ ';
var testEscape = escape(test);
console.info(test , testEscape , unescape(testEscape ));
Это решит вашу проблему
Ответ 2
Попробуйте использовать String.prototype.replace()
с помощью RegExp()
/\s(&)\s/
var data = "123 & abc";
var res = data.replace(/\s(&)\s/, "$1");
console.log("data:", data,"res:", res)