将加密字符串作为 jsp 参数从一个 jsp 传递给另一个 jsp

Pass Encrypted String as a jsp parameter from one jsp to other

我在将加密字符串作为 jsp 参数发送给其他 jsp 时遇到问题。它有空格,/,+字母数字字符

这是我的加密字符串的样子

var dataString="lREsIY9bcUFi9hETEJijk2yePcXAymOA9v+fW1MpTjJjZtuQJmAfyPzLJWjXM+9Qn6TC5dRBrU90KV/S9wmHw5Qpxo2DYmdjQtZlTwZWDoB1O+izeiBU90ZWJELSExFyHMSNVS5P/dnLw/+dp4O";

我在 firbug 的控制台中收到此错误:

Error in processing! [object Object]

如果我传递一个普通的字符串,一切正常,我被重定向到 jsp 但不是上面的字符串。

这是一个代码片段,passOnData 是我在 link:

中作为参数传递的变量
 if(passOnData!=""&&passOnData!=null){
                     $.ajax({
                         type: "POST",

                         dataType:"text",
                         contentType: "text/xml",
                         url:  "http://localhost:8000/secure/transaction.jsp?UserId=ABC&UserNo=110033&data="+encodeURIComponent(passOnData),
                         success: function(x) {

                         },
                         error: function( textStatus) {
                             console.log(' Error in processing! '+textStatus);
                         }
                     });

                    }

我的问题有解决办法吗?请帮忙。

Urlencoding 是您需要的魔法。 + 将转换为 space (%20) 否则会弄乱您收到的数据。

您可以将 + 替换为 %2b 或使用

进行适当的编码
 passOnData = URLEncoder.encode(passOnData);

发送前。

有 web-safe base64 实现不使用这些字符。

你必须转义特殊字符。使用Use URLEncoder.encode()方法