解决AJAX应用中的中文乱码问题

出现中文乱码的两种情况
1.请求数据中包含中文,服务器端程序接收错误导致出现乱码
2.响应数据中包含中文,编码设置错误导致浏览器中看到的结果数据是乱码。

响应数据乱码的解决方法:
保证页面端定义的charset和http响应头的Content-Type中定义的charset一致即可。

IE6中XMLHttpRequest对象在页面端定义的charset和http响应头的Content-Type中定义的charset都为GB2312时,中文响应数据出现乱码。其他浏览器没有这种现象
解决方法有两种:
1.http响应头的Content-Type种charset设置为utf-8
2.仅仅使用
“MSXML2.XMLHTTP”,"Miscrosoft.XMLHTTP"这两个种的一个来创建 XMLHttpRequest对象

请求数据乱码的解决方法:
1.页面端:
包含中文信息的请求数据利用JavaScript种的encodeURI进行两次编码处理
2.服务器端:
获取到的请求数据使用URLDecode类的decode方法按照utf-8的方式进行decode

解决AJAX应用中的跨域问题:
IE6:默认访问跨域页面时会给出提示,用户确认后会访问
IE7以上,Mozilla FireFox及其他:默认不允许访问跨域页面

方法总结:
1.页面端:

If(url.indexOf("http://")==0){
  url = url.replace("?","&");
  url ="Proxy?"url=" +url;
}

2.服务器端:
Get和Post方式分开处理
1.获取原始的请求url地址和参数
2.1get方式利用URL和远程地址交互
2.2post方式利用URL和URLConnection和远程地址交互,还要向远程发送请求参数信息。

发布了130 篇原创文章 · 获赞 14 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41306240/article/details/94320103