之前,因为一直在做后台开发,js方面虽然也偶尔会改一些小功能,但是真正意义上的去完成比较复杂js,革命尚未成功,同志还需努力学习js啊。
第一点
用url以get方式传递参数时,注意一些特殊的字符:
昨天我在用url传递参数时,碰到的问题是这样的:
“#话题#今天天气不错”这是一串中文字符,当我把它当做参数放在url后面会出现什么情况呢?
http://www.baidu.com/……?content=#话题#今天天气不错
这时候content的值用get方法是获取不到的,这个坑,我爬好久都没爬出来,后来静下来想了想,原来原因出在“#”,这个字符比较特殊在url中是表示锚点的意思,所以在获取时默认并没有把他当做字符串而是当做锚点的标识符。
问题找到了,解决办法:
- 第一种解决办法:
通过改接口参数实现,这也是我最终选择的方式,并不麻烦,可以在接口中添加一个参数,并在没有传入值的情况下默认给他一个值,这样如果是公共的方法的话,也不会影响到以前的代码功能,又能够完成对参数和内容的隔离。 - 第二种解决办法:
改get方式为post方式,这种方法在js文件非公共组件的时候可以用,但是如果像我改的公共文件,直接改的话,可以想象肯定是有问题的。
第二点、温故知新
js的调试方法:
document.write(需要输出的参数);
alert(需要输出的参数);
console.log(需要输出的参数);