zoukankan      html  css  js  c++  java
  • 记录一个小问题,如果前端传递的参数是加密过的,需要在后台解密

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

    前端代码:

     $.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");
  • 相关阅读:
    swift基本数据类型的使用
    宏定义单例类
    开发必备宏定义大全
    GUI02
    GUI01
    浅谈代码块的加载顺序
    Java里的多态
    在java中this和super的使用
    冒泡排序的简单优化
    命令行传参和不定传参
  • 原文地址:https://www.cnblogs.com/wangquanyi/p/11329081.html
Copyright © 2011-2022 走看看