Подтвердить что ты не робот

Пробел 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 на сервере.

Любая идея, что здесь делать?

4b9b3361

Ответ 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)