1. 程式人生 > 實用技巧 >java中支援前端jq通過ajax提交(post)json內容到控制器

java中支援前端jq通過ajax提交(post)json內容到控制器

public class TestFilter implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //返回true 則可放行  false不放行
        String type = request.getMethod();

        //新增ajax跨域支援
        if (type.toUpperCase().equals("OPTIONS") == true) {
            response.setCharacterEncoding("utf-8");
            response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Headers", "content-type, accept");
            response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
            response.setHeader("Access-Control-Allow-Credentials", "true");
            response.setStatus(200);
            response.setContentType("application/json;charset=utf-8");

            Map<String, Object> resObject = new HashMap<>();
            resObject.put("狀態", "成功");
            resObject.put("訊息", "介面是通的");
            String data = JsonUtil.toJson(resObject);//這裡就是把物件轉為json
            OutputStream outputStream = response.getOutputStream();
            byte[] dataByteArr = data.getBytes("UTF-8");
            outputStream.write(dataByteArr);
            return false;
        }
}

  後端加上這個處理就行了。

前端ajax請求記得設定contentType:"application/json;charset=utf-8"就行了