我制作了一个使用FullCalendar的预订系统;虽然那部分应该是无关紧要的。我的问题是,在保存约会时,我偶尔创建的'notes'字段会将这个奇怪的字符串插入其中,通常是在字符串中的随机点。这是最新的例子:
这已经被改变了jQuery1112010047650896012783_1444929292744,并且在星期六有丰富的袖子off.bringing存款。告诉他空间不安全。
正如你所看到的,有一个完全不合适的地方“jQuery1112010047650896012783_1444929292744”放在音符的中间。我在网上找不到任何关于这个的信息(主要是因为我不知道我会用什么术语来找到它)。考虑到字符串,它必须与jQuery相关。
我正在使用jQuery v1.11.2 - 显然字符串看起来像一个长版本号。
为什么我的ajax请求似乎成功,但将此消息放在发送字符串的中间?我根本无法复制这个问题,特别是这次,因为它是另一个设法导致它的用户。
获取/准备/发送数据的功能如下所示:
function postForm(content, action, update) {
loader('show');
var popup = content.parent();
var children = content.find(".input");
var data = {}
var elements = [];
data['elements'];
$( children ).each(function() {
var child = {};
child['name'] = $(this).attr('data-name');
if ($(this).is(':checkbox')) {
child['value'] = $(this).is(":checked");
} else {
child['value'] = $(this).val();
}
elements.push(child);
});
data.elements = elements;
data.request = action;
dataPost = JSON.stringify(data);
console.log(dataPost);
ajaxRequest = $.ajax({
type: "POST",
url: "/?page=ajax",
data: dataPost,
dataType: 'json',
success: function(response) {
loader('hide');
console.log(response);
if (update) {
$(update.element).load(update.url+" "+update.element+" > *");
checkError = doExtra(response, update.extra);
}
if (checkError == false) {
popup.fadeOut();
}
}
});
return false;
}
音符部分只是一个带有“输入”类的textarea(通过循环获取)。
我认为没有针对确切问题的解决方案,但是,我正在寻找修改字符串的解释。该应用程序运行良好,除了这种非常罕见的情况。
答案 0 :(得分:0)
问号(??)被jQuery时间戳替换。要修复,我不得不在参数中添加jsonp:false。最后的ajax:
ajaxRequest = $.ajax({
type: "POST",
url: "/?page=ajax",
data: dataPost,
dataType: 'json',
jsonp: false,
success: function(response) {
loader('hide');
console.log(response);
if (update) {
$(update.element).load(update.url+" "+update.element+" > *");
checkError = doExtra(response, update.extra);
}
if (checkError == false) {
popup.fadeOut();
}
}
});