Jquery – Escape all special characters in a string that is sent by jquery ajax


I am trying to send text in key value pairs while doing a contentType: "application/json; charset=utf-8", ajax post to a web service. The problem I am facing is that if one of the parameters (that accepts text from the user) has quotes (") it breaks the code [Eror message: Invalid object passed in ] . So far I have tried these without any success

var text = $("#txtBody").val(); 
var output1 = JSON.stringify(text); 
var output2 = text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); 

Any ideas on how to escape the special characters for the jquery ajax post?

Best Solution

Why not use escape?




As mentioned in comments, this is deprecated.

The deprecated escape() method computes a new string in which certain characters have been replaced by a hexadecimal escape sequence. Use encodeURI or encodeURIComponent instead.

Instead use one of the following: