Java Ajax with Japanese

Shift-JIS のページから Ajax 送信しようとして文字化けしたときに… クライアントサイド (JavaScript) とサーバサイド (Java) でエンコード・デコード   古いシステムを改修していて、Shift-JIS でエンコーディングされているページから Ajax 送信する必要があり、日本語が文字化けしたので色々やったメモ。 FormData を使って、文字列だけでなく画像ファイルも一緒に送信する必要があったので、色々と制限があった。 画像ファイルをアップする時は POST 送信する必要がある (GET 送信は不可)。 jQuery で Ajax 送信する際、FormData を使う場合は contentType 指定ができない (jQuery が勝手にやる)。 processData 指定による変換を行おうとしたが、これは GET 通信のときしか設定できない。 サーバ側は Java だったので、SetEncodingFilter を突っ込めばいいか?と思ったのだが、現行の別ページのエンコーディングに影響しては困るので導入できなかった。 参考:AjaxとシフトJIS –…

Ajax send json data to Controller and get result back

#HTML========================== <input type=”text” placeholder=”” id=”search”> #JS========================== function search(){ var text = document.getElementById(“search”).value; if(text != ”){ $.ajax({ type: “GET”, url:”getList”, data: {“text”:text}, datatype: “json”, success: function(data){ console.log(data); } }) } }; $(“#search”).on(‘input’,search); #Controller========================== @RequestMapping(value = “/getList”, method = RequestMethod.GET) @ResponseBody public…