Can';使用javascript在JSON对象POST中使用双引号
我试图发布JSON,但是Can';使用javascript在JSON对象POST中使用双引号,javascript,jquery,json,post,Javascript,Jquery,Json,Post,我试图发布JSON,但是“是以%22的形式转义的。因此,我看到:{%22domain%22:%22asdf.com%22,%22playerClass%22:%22asdf%22,%22adTag%22:%22%22}在发布后,我想在控制台中发送它,而不转义双引号。因此,它应该是这样的:{“domain”:asdf.com,“playerClass”:“asdf”,“adTag”:“} 我在表单字段中循环,如下所示: $.fn.serializeObject = function () { va
“
是以%22
的形式转义的。因此,我看到:{%22domain%22:%22asdf.com%22,%22playerClass%22:%22asdf%22,%22adTag%22:%22%22}
在发布后,我想在控制台中发送它,而不转义双引号。因此,它应该是这样的:{“domain”:asdf.com,“playerClass”:“asdf”,“adTag”:“}
我在表单字段中循环,如下所示:
$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
并按如下方式存储结果:
var dataString = JSON.stringify($('form').serializeObject());
我怎样才能避免“
变成%22
?结果div中显示了正确的格式,但控制台日志显示了JSON对象中的转义字符
您正在将数据作为url参数的一部分进行传递,jQuery进一步将其视为URIcomponent,并将其转义
$.ajax({
type: "POST",
dataType: "json",
url: "?" + dataString,
...
相反,您应该将其作为数据传递,然后将其作为表单post的一部分在服务器上处理:
$.ajax({
type: "POST",
dataType: "json",
url: "?"
data: dataString,
那么jQuery将不会因为它是一个URI而逃避它。当然,您实际上不需要自己对数据进行字符串化!只需传入本机JS对象,JQuery就会为您将其字符串化。请参阅。JQuery不允许您在不手动序列化表单的情况下通过ajax发送表单吗?但是我想不起这个函数。