gpt4 book ai didi

javascript - 无法使用 javascript 对 JSON 对象 POST 中的双引号进行转义

转载 作者:行者123 更新时间:2023-11-28 00:14:36 25 4
gpt4 key购买 nike

我正在尝试 POST JSON,但是 " 被转义为 %22。所以我在哪里看到这个:{%22domain%22: POSTing 后控制台中的 %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 中的转义字符对象。

<强> JSFIDDLE

最佳答案

您将数据作为 url 参数的一部分传递,jQuery 进一步将其视为 URI 组件并转义。

$.ajax({
type: "POST",
dataType: "json",
url: "?" + dataString,
...

相反,您应该将其作为数据传递,然后在服务器上将其作为表单帖子的一部分进行处理:

$.ajax({
type: "POST",
dataType: "json",
url: "?"
data: dataString,

然后 jQuery 不会认为它是一个 URI 来转义它。当然,您实际上不需要自己对这些数据进行字符串化!只需传入原生 JS 对象,JQuery 就会为您将其字符串化。请参阅http://api.jquery.com/jquery.ajax/#jQuery-ajax-settings .

关于javascript - 无法使用 javascript 对 JSON 对象 POST 中的双引号进行转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30582350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com