博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决...
阅读量:5886 次
发布时间:2019-06-19

本文共 785 字,大约阅读时间需要 2 分钟。

转载请注明出处

本文源自【】

问题是这样的在前台输入+++ 3个加号然后提交到后台在前台页面显示是没有问题的

在后台用req.getParameter(“comment”);获得内容结果为3个空格也就是无法获得+号怎么解决呢。

第一种解决方案

我们可以在前台获得字符串的时候将”+”号转换为”%2B”.

comment=comment.replace(/\+/g,"%2B");// \为转义

我自己实践了一些发现此方法可以挺好的一种方法

第二种解决方案

在我们服务器端执行的也就是我们自己将空格转换为+号但是思考一下就会发现此方法也不行因为会将空格与+号混淆。

第三种解决方案

也就是自己构建特殊字符,来写一个简单的传输协议代替+号
例如我们在前台的时候如果有人输入+号我们就把它转换为: “*jiahao;”这个字符串可以自己定义然后我们后台再解析成对应的+号。
前台JS

comment=comment.replace(/\+/g,"*jiahao;");// \为转义

Java后台解析回去:

message = message.replace("*jiahao;", "+");//注意这里如果用replaceAll要注意正则表达式中的特殊字符转义

此种方法可行但是麻烦啊还得自己转来转去的。

第四种解决方案

前台JS使用encodeURIComponent函数。

comment=window.encodeURIComponent(comment);

其实这个函数也就是将+替换成了%2B

所以如果遇到特殊符号了用这个函数就可以了

还有encodeURI()这个函数解决不了+号这个特殊字符的传参变成空格的问题

网上还有的教程地方把%2B写成了2b%真的是让人挺无语了。

本文章由编写 所有权利保留。

欢迎转载分享是进步的源泉。

转载请注明出处

本文源自【】

你可能感兴趣的文章
标准acl配置
查看>>
java spark WordCount
查看>>
HttpClient和HtmlUnit的比较总结
查看>>
禁止匿名VSFTP用户登录
查看>>
Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
查看>>
Oracle 10g
查看>>
Mahout数据承载
查看>>
Linux:alias 起别名
查看>>
Spring Boot 中使用 RocketMQ
查看>>
我的友情链接
查看>>
day01:shell基础(shell基础、alias及重定向)
查看>>
CockroachDB搭建及简单性能测试情况
查看>>
sitemesh3 源码分析
查看>>
centos7.2部署vnc服务记录
查看>>
Web的项目管理工具Redmine(对比选择最佳开源项目)- Codendi,dotProject,Launchpad,Project.net,Redmine...
查看>>
Linux基础(十)--bash脚本简介
查看>>
Cocos2d-x Android开发环境的配置
查看>>
NTP
查看>>
扩展根目录空间
查看>>
簡單收所有經過網卡的包 promiscuous mode GNU Linux
查看>>