jQuery Ajax将随机“jQuery111201xxx”放入字符串

时间:2015-10-19 08:22:20

标签: javascript php jquery ajax

我制作了一个使用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(通过循环获取)。

The notes field

我认为没有针对确切问题的解决方案,但是,我正在寻找修改字符串的解释。该应用程序运行良好,除了这种非常罕见的情况。

1 个答案:

答案 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();
        }
    }
  });