记录一个小问题,如果前端传递的参数是加密过的,需要在后台解密
Posted wangquanyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一个小问题,如果前端传递的参数是加密过的,需要在后台解密相关的知识,希望对你有一定的参考价值。
如果前端传递的参数是加密过的,需要在后台解密,有中文等特殊符号需要用到加密:
前端代码:
$.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");
以上是关于记录一个小问题,如果前端传递的参数是加密过的,需要在后台解密的主要内容,如果未能解决你的问题,请参考以下文章