java中支援前端jq通過ajax提交(post)json內容到控制器
阿新 • • 發佈:2020-07-29
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"就行了