这是我的ajax电话:

function callServer()
{
    alert('before : ' +uncompressed64Data.length);
    var compressed = LZString.compressToUTF16(uncompressed64Data);
    alert('after : ' +compressed.length);

    debugger;
    jQuery.ajax({
        url : "/RegisterServlet_2/servlet/Register",
        type : "POST",
        data: "img="+compressed,
        cache : false,
        async : false,
        success : function()
        {

        },
        error : function()
        {
        }
    });

}


尝试错误接收时出现以下错误:

字符解码失败。参数[img]的值为[Ả㵵¥¥ä?¢æ¡¥Æ´Û?à­â¤¡ ???????????请注意,此处引用的名称和值可能会由于解码失败而损坏。使用调试级别日志记录来查看原始的,未损坏的值。


1.我提到过html文件utf8的标题
2.提到server.xml

URIEncoding="UTF-8"


3.服务器端提到,

request.setCharacterEncoding("utf-8");


请注意,我不需要任何编码,我只想获取发送的数据。

提前致谢。

最佳答案

我认为由Content-Type引起的问题,默认情况下jquery使用application/x-www-form-urlencoded; charset=UTF-8。尝试将其设置为text/plainmultipart/form-data。这是documentation

07-24 09:16