记录一个小问题,如果前端传递的参数是加密过的,需要在后台解密

如果前端传递的参数是加密过的,需要在后台解密,有中文等特殊符号需要用到加密:

前端代码:

 $.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");
原文地址:https://www.cnblogs.com/wangquanyi/p/11329081.html