今天工作的时候遇到传值的值过去了发生数据丢失的情况,因为我做的功能涉及到富文本编辑器,传的值是标签语言,比如里面有src的链接里有?xxx=xxx&yyy=yyy,然后&后面的数据值丢失了,我觉得应该是分隔符的问题,后台把他当成参数截断了,导致我们得不到值,我们可以先对字符串处理一下。
使用 JavaScript 的 encodeURIComponent(URIstring):
这个方法可以把一些特殊符号转成十六进制格式的字符串,这样传过去的值就完整了,而且也不影响HTML的显示。
示例:
这里我就把一些敏感字符去掉了,这个链接是点不开的,但是可以直观地展示这个方法的效果。
处理前:
处理后:
%3Cp%3E%3Cimg%20src%3D%22https%3A%2F%2Fxxx.com%2Factivityfile%2F1506501711005.jpg%3FExpires%3D1506787140%26OSSAccessKeyId%3aaaaaaaangvN%26Signature%3DssssssssgQ5dbGDVcqrA%253D%22%20title%3D%221506501711005.jpg%22%20alt%3D%22%22%2F%3E%3C%2Fp%3E
然后你把这个值往后台一传,后台还会给你自动解析成处理前的链接,这个原理我暂时不知道。
本文完!谢谢观看!