如果帖子数据包含“&”它认为它正在分离查询字符串参数。如果它包含+它认为它是一个空间。我确信已经有一些预先构建的功能可以处理这些事情。
答案 0 :(得分:7)
只需将您的数据作为对象传递,jQuery将在内部通过$.param()
对其进行序列化,例如:
$.ajax({
//options..
data: { key: "myValue" }
});
//the same goes for shorthand methods:
$.post("url", { key: "myValue" });
所有的魔力都是基本的JavaScript,$.param()
只是使用下面的encodeURIComponent()
来创建字符串时进行序列化(包括&
编码)。
如果您要发送整个<form>
,只需使用.serialize()
将整个<form>
(所有成功的表单元素)序列化为字符串 - 就像普通的非AJAX提交一样,例如:
$.post("url", $("form").serialize());
答案 1 :(得分:-1)
另一个选项是encodeURI