在js与后台交互过程中,我们经常遇到获取不到ajax的返回值的问题,搞了两天,从网上查了查,最后得到的结论是,把提交页面的form属性去掉就可以了。具体什么原因还是不清楚,希望高手指教。
另外,js与后台的乱码问题,网上有配置web.xml的方法,我试了试没有成功,就不说了。但是用这个方法肯定是好用的,
String zcbh= new String(request.getParameter("zcbh").getBytes("ISO-8859-1"), "GB2312");
也不用在js中进行两次编码,后台进行一次解码。
刚看到的一篇感觉比较经典,地址:http://www.jerrymouse.net/content/%E8%A7%A3%E5%86%B3js%E5%BC%95%E5%85%A5%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98
近期,工作中使用的js内有硬编码的中文字符,在使用jsp引入js时,显示出来后,总是会乱码.试过了加filter,引入时指定utf-8编码以及文件保存编码和引入一致等各种网上的常用方式,都不管用.在正式运行时,js总是以ISO-8859-1(西方文)的默认方式引入(使用firebug调试时可以看到引入的编码方式).猜测可能是由于环境的原因所致,即js的引入使用了默认的ISO-8859-1方式引入,引入的继承顺序可能是web服务器->web应用,那么我是否可以在web.xml内强行指定呢?google一把,web.xml可以配置指定某个应用的文件引入方式.web.xml的配置说明可以参考:http://huangyingjie168.blog.chinajavaworld.com/entry/5267/0/;
最终解决办法:
在web.xml内添加
<mime-mapping>
<extension>js</extension>
<mime-type>text/javascript;charset=utf-8</mime-type>
</mime-mapping>
即可,一般默认是iso西方字符集.
当你在使用网上的常规方式无法解决js引入的乱码问题时,可以试试以上方法.
各位有更好的方法,欢迎交流!谢谢!!以下是网上的一些参考资料,以供大家参考:
服务器一般都具有一种让Web站点管理员将文件扩展名与媒体相关联的方法。例如,将会自动给予名为mom.jpg的文件一个image/jpeg的 MIME 类型。但是,假如你的Web应用具有几个不寻常的文件,你希望保证它们在发送到客户机时分配为某种MIME类型。mime-mapping元素(具有 extension和mime-type子元素)可提供这种保证。例如,下面的代码指示服务器将application/x-fubar的MIME类型分配给所有以.foo结尾的文件。
<mime-mapping>
<extension>foo</extension>
<mime-type>application/x-fubar</mime-type>
</mime-mapping>
或许,你的Web应用希望重载(override)标准的映射。例如,下面的代码将告诉服务器在发送到客户机时指定.ps文件作为纯文本(text/plain)而不是作为PostScript(application/postscript)。
<mime-mapping>
<extension>ps</extension>
<mime-type>application/postscript</mime-type>
</mime-mapping>
超文本标记语言文本 .htm,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar