您好,请问一下jquery ajax 的contentType该怎么设置?

最近做jquery+ajax请求时遇到了乱码问题,服务器和页面都是GBK,但是jquery ajax的contentType默认为utf-8,传过去是乱码.网上都说可以设置contentType的值,但是我设置了根本没有用.firebug里面Content-Type一直都是utf-8.有哪位高手可以高手我怎么解决呢?
我用的是struts2

慕桂英546537
浏览 561回答 3
3回答

芜湖不芜

设置contentType这种做法是不行的.不管你怎么设置,最后传到服务器的都是utf-8...因为ajax在发送数据前会自动进行一次encodeURLComplent,这个方法是按utf-8格式编码的.jquery ajax乱码一般有以下几种方案,不知道能不能成功..1.配置struts2默认编码为utf-8 2.如果默认编码不能改为utf-8,可以写一个过滤器,如果请求为ajax请求,则request.setContentType("utf-8"); 3.更改jquery ajax底层代码,这个你可以网上搜一下. 4.这个方法比较普遍,二次转码.就是说中文数据可以在页面encodeURI两次,记住是两次,然后服务器端解码.

慕田峪9158850

设置一下编码就行了 如: $.ajax({url:'url',type:'POST',dataType:'json',contentType:'GBK'}) 设置contentType就行了 注意如果带中文 不能使用get请求要使用post请求

莫回无

后台的response需要设置response.setContentType("text/html");response.setCharacterEncoding("GB2312");response.getWriter().print(strBuf.toString());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Python