在jQuery 表单插件的帮助下,我们正在上传一个文件以及常规表单字段。一切正常。但是如果有任何 utf-8 特殊字符,那么它会被转换成一些垃圾字符服务器端。检查请求标头时,我们发现内容类型 charset=utf-8 缺失。尝试在提交时添加内容类型,但没有任何帮助。
var options = {
success: successfunc,
contentType: 'multipart/form-data; charset=utf-8',
};
$("#formid").ajaxSubmit(options);
在分析 jQuery 脚本文件后我们发现
var s = $.extend(true, {}, $.ajaxSettings, options, {
contentType: false,
processData: false,
cache: false,
type: 'POST'
});
如果 jQuery 中的内容类型被更改,那么由于边界值问题,服务器代码无法获取请求参数。是否无法在单个 ajax 提交中上传文件并发送 utf-8 特殊字符?