如果前端传递的参数是加密过的,需要在后台解密,有中文等特殊符号需要用到加密:
前端代码:
$.ajax({ type: "POST", url: "/init/SaveToDatabase", dataType: "json", async: false, data: decodeURIComponent(JSON.stringify(array)), success: function (result) { var statusCode = result.StatusCode; console.log(statusCode); if (statusCode == 200) { layer.msg("成功:请求已经成功..."); } else if (statusCode == 500) { layer.msg("失败:请求失败,请重试...") } } });
后台代码:
1 public JSONObject saveToDatabase(String jsonArray) throws UnsupportedEncodingException { 2 //前台传的数据是加密的,后端解密 3 jsonArray1 = URLDecoder.decode(jsonArray1, "utf-8"); 4 //踩过的坑,解密之后的数据最后一个字符多了一个=号,截取掉,endsWith判断最后一位是否是=号 5 if (jsonArray.endsWith("=")) { 6 jsonArray = jsonArray.substring(0, jsonArray.length() - 1); 7 } 8 //转化成json数组 9 JSONArray jsonArray = JSONArray.parseArray(jsonArray); 10 }
补充一句,后台的加密写法:
name = URLEncoder.encode(name, "utf-8");