- 说明:
经常使用ajax提交表单,无论是get还是post方法,其内容都有部分特殊字符需要转义或处理 - 原理:
如果是get方法,则是要对内容进行转码和转义,如果是post方法,则只要对其内容进行特殊内容转义,可写一公共方法通用处理后提交。特殊字符转义包括 | + %2B | 空格 %20 | / %2F | ? %3F | % %25 | # %23 | & %26 | = %3D | - 实现:
js:function encodeContent(data){ return encodeURI(data).replace(/&/g,'%26').replace(/\+/g,'%2B').replace(/\s/g,'%20').replace(/#/g,'%23'); }
除空格,加号,#号外,别的字符已经在加密时转义过了
看到了大家的回复,看来这个贴子写的是很不得人心,要不就不知我所云,要不就认为我这是一个找鄙视的文章.
解释一下:我所写的文章都是我在开发中所遇到的问题,无论可能性在别的地方如何,但它就在我的项目里出现了.有的问题看起来是有点普通和浅薄,但那都是我一步一步走出来的脚印.
再来说说这个贴子所想表达的意思, 1. js 是已经提供了encodeURI 和 encodeURIComponent 方法, 2.这两个方法都不适合在我项目中使用,我所使用的框架是ofbiz,他的页面渲染方式是把所调动的页面内容包括js的内容都时行了html转义, 在项目页面的编码中,encodeURIComponent方法会将别的一些符号给转义了,比如分号,左斜杠等,但我项目里不能让他们转义,(为什么?短话里说不清,这是项目和框架的问题,就是在我的项目里出现了),所以我要有我自己的转义方法,思路就是,先不对符号进行转义,再对部分特殊符号转义,就这么简单,我个人认为这种做法已经可以代替encodeURIComponent并能在我项目里被兼容.