Return JSON from servlet Return JSON from servlet json json

Return JSON from servlet


IE caches AJAX requests aggressively (more than Firefox, Chrome, and Safari, anyway).Sometimes you need to set cache header controller when request. Like cache:false. I tried to fix your code like this

request.setCharacterEncoding("utf8");        //response.setCharacterEncoding("utf8");        response.setContentType("application/json");        PrintWriter out = response.getWriter();        JSONObject jsonObj = (JSONObject) JSONValue.parse(request.getParameter("para"));        System.out.println(jsonObj.get("message"));        JSONObject obj = new JSONObject();        obj.put("message", "hello from server");        out.print(obj.toString());

I changed your response content-type from application/json; charset=utf8 to just application/json and that worked.


I was having the same problem. It was working well on Firefox but not on IE...I found out reading this post that my problem was related to the 'Content-Type'. The problem seems that that IE has problem with 'charset=UTF8'. However, if you use 'charset=UTF-8' (with a dash) it is then working!Your Content-Type should then be: application/json;charset=UTF-8


<%      Gson gs = new Gson();     BeanHelpBH bh = new BeanHelpBH();     List<Baihatmoi> lst = bh.getTenbaihatbyName("Ao moi ca mau");    String bha = gs.toJson(lst);    response.setContentType("application/json");    response.setCharacterEncoding("UTF-8");    out.print(bha);    out.flush();%>  script :         <script>             $(document).ready(function(){               $.get('jsontest.jsp',function(data){            [enter image description here][1] console.log(data);              });           });        </script>