2017-09-21 333 views
0

這是我的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]的值是[????????????????????????? ä??à©?má¹?“’]已被忽略。請注意,由於解碼失敗,此處引用的名稱和值可能會損壞。使用調試級別日誌記錄查看原始的未損壞的值。 HTML文件UTF8的

據透露, 1.I提到頭 2.server.xml提到

URIEncoding="UTF-8" 

3.server側提到,

request.setCharacterEncoding("utf-8"); 

請注意,我不想要任何編碼,我只想獲得我發送的數據。

在此先感謝。

回答

1

我覺得Content-Type引起的問題,默認jquery使用application/x-www-form-urlencoded; charset=UTF-8。嘗試將其設置爲text/plainmultipart/form-data。這裏是documentation

+0

已經嘗試過,它沒有工作。 –

+0

也許會像UTF16一樣壓縮它的問題,但服務器需要按照您在標題中指定的方式使用UTF8。 – slesh

+0

multipart/form-data解決了這個問題!謝謝 –