Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';使用javascript在JSON对象POST中使用双引号_Javascript_Jquery_Json_Post - Fatal编程技术网

Can';使用javascript在JSON对象POST中使用双引号

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

我试图发布JSON,但是
是以
%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发送表单吗?但是我想不起这个函数。