AJAX Post请求编码

时间:2014-12-08 02:31:36

标签: jquery c++ ajax post encoding

我在C ++中实现HTTP服务器,并通过jQuery向它发送Ajax POST请求。

我在我的一个页面上有一个表单,我使用此代码提交:

$('#create-event form').submit(function(e) {
    var postData = $(this).serializeArray();
    var formURL = $(this).attr('action');
    $.ajax({
        url : formURL,
        type: 'POST',
        data : postData,
        contentType: 'text/plain'
    });
    e.preventDefault();
});

当我在C ++中收到此请求时,查询参数的最后~10个字符是乱码,就像编码错误一样。问题是,我有很多这种类型的形式,并且这种相同的乱码发生在其他形式,直到我添加了contentType: 'text/plain'字段。现在,这个表单是唯一一个发生此编码问题的表单。

我可以设置任何其他类型的编码字段来防止这种乱码吗?我已经尝试了所有我能找到的东西,没有任何帮助。

我们将非常感谢任何帮助,我已经花了好几个小时。

编辑: 我现在转换为unix时间戳客户端,并且没有乱码,它必须与URL编码的空格和冒号有关。

1 个答案:

答案 0 :(得分:0)

要创建查询字符串,您应该尝试使用$(this).serialize()而不是序列化数组。

$('#create-event form').submit(function(e) {
    var postData = $(this).serialize();
    var formURL = $(this).attr('action');
    $.ajax({
        url : formURL,
        type: 'POST',
        data : postData,
        contentType: 'text/plain'
    });
    e.preventDefault();
});