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

和自甴很熟 提交于 2019-11-26 17:25:57

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

前端代码:

 $.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");

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!