我在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编码的空格和冒号有关。
答案 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();
});