Jquery ajax call с знаком "+"

$. Ajax ({
      тип: "POST", url: baseURL + "sys/formTipi_azioni", данные: "az_tipo =" + azione,       beforeSend: function() {$ ( "# form" ). html ('

');},       success: function (html) {$ ( "# form" ). html (html);}
   });

существует случай, когда azione

TB+ 

знак плюса вообще не получает POSTED, пустое пространство отправляется. Я уже пробовал это:

azione = escape(String(azione));

Не повезло. Кто-нибудь знает, как это исправить?

Спасибо

Ответ 1

azione = escape(String(azione));

должен быть

azione = encodeURIComponent(String(azione));

или просто

azione = encodeURIComponent(azione);

Ответ 2

Попробуйте следующее:

$.ajax({  
    type: "POST", 
    url: baseURL + "sys/formTipi_azioni",
    data: { az_tipo: azione },
    beforeSend: function(){
        $("#form").html('<p><img src="'+baseURL+'lib/img/ajax-loader.gif" width="16" height="16" alt="loading" /><p>');
    },
    success: function(html){
        $("#form").html(html);
    }  
});

и оставьте jQuery кодировкой url для вас.

Ответ 3

Никогда не используйте escape(). Используйте encodeURIComponent().

Ответ 4

Вместо того, чтобы самостоятельно составлять данные сообщения, вы также можете позволить jQuery выполнить работу, передав ей объект:

$.ajax({  
    type: "POST", url: baseURL+"sys/formTipi_azioni",
    data: {az_tipo: azione},
    beforeSend: function(){$("#form").html('<p><img src="'+baseURL+'lib/img/ajax-loader.gif" width="16" height="16" alt="loading" /><p>');},
    success: function(html){$("#form").html(html);}  
 });

Ответ 6

escape(String(azione)).replace(new RegExp( "\\+", "g" ),"%2B");

это отправляет символ плюса с помощью регулярного выражения