关于Ajax responseText 的一点阐述

尐╮絡

尐╮絡

2016-02-20 00:35

图老师小编精心整理的关于Ajax responseText 的一点阐述希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)前一段时间碰到这样的的问题,Ajax从后台得到的中文信息怎么都是空。后来到网上搜资料,大多是以下这样。

用AJAX来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码流的时候就乱了。解决的办法就是在送出的流里面加一个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会乱搞了。

PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");

但是我按照在这种方法,无论如何都没有成功过。真是误人子弟啊。先把我的代码贴出来。
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
...{
/** *//**
* 设置请求的编码格式,因为Ajax程序默认都是通过UTF-8编码传递字符,所以在接收字符前,请设置请求的编码格式为 UTF-8
*/
request.setCharacterEncoding("UTF-8");
/** *//**
* 设置输出信息格式,因为Ajax在接收返回的信息的时候,默认的也是UTF-8编码,所以返回时,请设置编码格式为UTF-8 如果你要返回的是
* XML 信息,即Ajax调用responseXML 则用下面语句代替 该语句
* response.setContentType("text/xml;charset=UTF-8");//返回的xml文件
*/
response.setContentType("text/text;charset=UTF-8"); // 返回的是文本信息

PrintWriter out = response.getWriter();
// out.println("/response");
if (rs == true)
out.write("ReturnInforreturntrue/returninfor用户名称不能为空/infor/ReturnInfor");

out.close();
}

前台很简单:
script language="javascript"
alert( "返回的信息为:"+xmlReq.responseText )
/script

就是这样,无论如何都得不到中文。不知何故。

后来把后台的 response.setContentType("text/text;charset=UTF-8"); // 返回的是文本信息,改成 XML 传递,则运行正常。

后来发现的确如此 responseText 不支持中文。至少在我的程序里面是这样子的。希望大家可以借鉴以下。
展开更多 50%)
分享

猜你喜欢

关于Ajax responseText 的一点阐述

Web开发
关于Ajax responseText 的一点阐述

Ajax responseText 的一点阐述

Web开发
Ajax responseText 的一点阐述

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

关于IE缓存和AJAX的一点思考和疑问

Web开发
关于IE缓存和AJAX的一点思考和疑问

关于JSP的一点疑问小结

Web开发
关于JSP的一点疑问小结

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

关于java学习的一点感言

编程语言 网络编程
关于java学习的一点感言

关于摄影的一点心得

摄影
关于摄影的一点心得

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JS扩展Photoshop新功能

JS扩展Photoshop新功能

一个月总有那么三十几天 不想去上学

一个月总有那么三十几天 不想去上学
下拉加载更多内容 ↓