在尝试将contentType:“application / json; charset = utf-8”,ajax发布到Web服务时,我尝试在键值对中发送文本。我遇到的问题是,如果一个参数(接受用户的文本)有引号(“),它会打破代码[错误消息:传入的无效对象]。到目前为止,我没有任何成功尝试过
var text = $("#txtBody").val(); var output1 = JSON.stringify(text); var output2 = text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");
任何想法如何逃脱jquery的特殊字符ajax的帖子?
解决方法
为什么不使用逃生?
escape(text);
https://developer.mozilla.org/en/DOM/window.escape
编辑!!!!
如评论中所述,这是不推荐的。
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.
而是使用以下之一:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent