Eh sì...
Problemino non solo serio, ma che può farsi catastrofico se anzichè un + inserisci un & o un %.
Ti diranno che devi risolverlo sul lato del server facendo l'escaping, facendo htmlspecialchars, facendo nu' sacco di cose...
La verità è che Ajax con i caratteri &+% può darti problemi assai seri, che non è facile ovviare poichè potrebbero ripresentarsi in altre maniere subdole.

Il + viene frainteso come un carattere rappresentativo dello spazio bianco nelle url (stai inviando una richiesta HTTP, ricordi?).

L' & come ad esempio (Jonny & soci) viene frainteso come un separatore di un nuovo elemento della query.

Il % viene frainteso come l'inizio di una entità "encoded".

Nel tuo codice ajax, supponendo che l'input sia affidato ad una variabile di nome "send":

send=send.replace(/\&/g, '#38#');
send=send.replace(/%/g, '#37#');
send=send.replace(/\+/g, '#43#');
send=unescape(send);

Poi, sul lato del server dovrai incaricarti di ritrasformare
#38# in &
#37# in %
#43# in +
prima di immettere nel DB.

Quei numeri non è che sono scelti proprio a caso, ma i due caratteri # che li circondano sì: è un tentativo, ineremente problematico, di cercare delle stringhe che assai probabilmente non saranno state immesse dall' utente nei suoi testi - se lo fossero, avverrebbe una traduzione errata.

Penso che non lo siano, ma ovvio che se vuoi essere del tutto certo ti toccherebbe fare un loop che verifica la presenza (indexOf) della stringa nell' input, e se c'è vi aggiunge che so un altro # e poi riverifica e se c'è vi appende un altro # e cosi via finchè non individua un indexOf<0, e a quel punto puoi usarlo come un replacement in maniera sicura, solo che poi come lo comunichi al server? Ti toccherebbe fare un altro ajax che setta una variabile di sessione... e poi al response lancia l'altro ajax.