【发布时间】:2013-08-25 08:47:18
【问题描述】:
我有一个使用FormData 对象上传jQuery.ajax() 的Web 应用程序。到现在为止还挺好。数据作为multipart/form-data发送,服务器解析,没问题。
但是当我尝试在同一个请求中将其他数据与文件一起发送时,我遇到了字符编码问题。
我的“其他数据”是希伯来语,所以我需要编码为utf-8。
当我定义 ajax 选项contentType=false 时,谷歌浏览器自动将内容类型请求标头设置为multipart/form-data; boundary=----webkitwhatever。
但是当我设置 ajax 选项contentType="multipart/form-data; charset=utf-8" 时,谷歌浏览器不会添加边界标头,服务器无法解析请求。但我认为无论如何都是错误的,因为即使我设置了charset=utf-8,当我在 chrome 的开发工具中的网络选项卡中查看请求时,我仍然看到编码为乱码的数据。
我该如何解决这个问题?
明确地说,我希望能够同时发送带有文件上传和其他数据的 ajax 请求,并且能够将字符集编码设置为 utf-8 以支持希伯来语。
【问题讨论】:
标签: jquery ajax google-chrome encoding utf-8