首页 > 代码库 > java开发中的那些事(6)------一次ajax调用中的问题
java开发中的那些事(6)------一次ajax调用中的问题
这个周末就要到这次开发任务的结尾了,不过也到这时候了,才发现用起来比较顺手了,前几次项目中也有过啊,说起来实实在在用过的才3个项目,就分别用了不同的,着实有些痛苦啊,初学阶段的jsp+servlet还算是初学,可这后面的loushang和ssh2是让我欢喜让我忧啊,高兴的是框架的魅力让我情不自禁,可这样的框架我啥时候才能自己组的那么完善,甚至现在用起来还磕磕绊绊的。总结下这次的大收获的话,一方面是这个框架,另一方面的话就是ajax和json了,这个在我来说是比较陌生的地方,虽然现在我可以用,但原理上还是有些迷糊,是那种有些明白,但不贯通的感觉,还是好好努力吧,加油。
这篇记录是在家里写的,在公司里编写的代码已经记不清全部了,写一下部分代码吧:
$.ajax({ url:"getDataBtf.action", data:"id="+$("#btfId").val()+"&&location="$("#btfLocate").text(), success:function(){ } })大致能想起来的就这些了,这个下午在这个地方磕了好几次,这样来罗列下绊脚的地方
1、这个地方的“,”是逼疯人的节奏啊,喜欢复制过来再修改的毛病总会多出那么一个“,”:杯具啊;
2、$("#btfId")这个地方的意义就是document.getElementById("btfId")嘛,获取dom对象,我一直都这么记,可还是经常忘记“#”,有点悲催;
3、这个地方的location是中文的,在后台开始的时候总是获取不到,让我是苦不堪言啊;
4、val()和text(),在text和select中可以用val(),这应该属于jquery的范畴了
解决办法:
1+2:这两个还真就没办法,细心+小心,不行就重来,反正错了的话结果就那么明显;
3:当时我用encodeURI()来解决的,今天回来搜下后发现escape()和encodeURIComponent()
大致原理的话:
encodeURI()函数默认采用的UTF-8编码,然后在jsp中再经过页面本身的编码后传递给服务器,传递给后台,而后台在调用getParamter()方法时,服务器会对相应的数据先解码urlDecode一次后,然后再根据服务器端相应的url转码方法进行一次转码,所以说这个地方是需要两次转码的
至于其他两个,还没有用过,不敢妄下定论啊
4、这个是在进行赋值的时候发现的,结果在传递的时候又出现了
("#btfLocate").text(data[1]); ("btfId").val(data[0]);val()貌似只有对text和select中有用,就像document.getElementById("一个text").value;而document.getElementById("一个div")的innerHTML这个不同是一样一样滴啊
我始终相信时间的苦难是定数的,你开始痛苦了,后面总会顺风顺水,我还是菜鸟,我还在飞..