博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IT兄弟连 JavaWeb教程 AJAX常见问题
阅读量:6611 次
发布时间:2019-06-24

本文共 827 字,大约阅读时间需要 2 分钟。

hot3.png

1  中文乱码问题

●  POST提交乱码

乱码原因:所有浏览器对Ajax请求参数都使用UTF-8进行编码,而服务器默认使用ISO-8859-1去解码,所以产生乱码。

解决方法:在服务器接收请求参数前设置解析编码。

request.setCharacterEncoding("UTF-8");

●  GET提交乱码

乱码原因:IE浏览器发送请求时,会默认使用GBK字符集对请求参数进行编码,而其他浏览器会使用UTF-8.服务器默认情况下使用的时ISO-8859-1进行解码,所以产生乱码。

解决方法:在浏览器发送请求前,先将URL利用encodeURI()编码。encodeURI会使用UTF-8对请求地址中的中文进行编码。

var uri = 'xxx?name=张三';

xhr.open('get',encodedURI(uri),true);

在服务器端进行编码转换:

String name = request.getParameter("name");

name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

 

2  缓存问题

不同浏览器对于请求相同地址的处理方案如下:

Chrome  重新发送请求

FireFox 重新发送请求

IE       不再发送请求

IE浏览器提供的Ajax对象,在发送GET请求时,会先查看是否访问过该地址,如果该地址访问过,浏览器就不会再发送请求,而是取出先前浏览器缓存的数据内容。

浏览器缓存的解决方案:

s在请求地址后面添加一个系统时间或者一个随机数字,例如:

xhr.open('get','load.do?r=' + new Date().getTime(),true);

xhr.open('get','load.do?r=' + Math.random());

转载于:https://my.oschina.net/u/4125915/blog/3058599

你可能感兴趣的文章
0.随笔——读后感
查看>>
CentOS 6.5下PXE+Kickstart无人值守安装操作系统
查看>>
xtrapivotcontrol 控件用法及相关属性
查看>>
Shell脚本 常用命令总结 二
查看>>
冰球游戏大概的模块
查看>>
JS模拟select下拉菜单
查看>>
线性方程组迭代求解——Jacobi迭代算法(Python实现)
查看>>
vmware workstation14永久激活密钥分享
查看>>
iOS 多线程 之 GCD(大中枢派发)(一)
查看>>
Myeclipse中打开接口实现类的快捷键
查看>>
删除sql dump中的AUTO_INCREMENT
查看>>
使用JdbcTemplate和JdbcDaoSupport
查看>>
C博客作业--指针
查看>>
版本12.2.0.1.0数据库,复制种子数据库快速创建租户数据库PDB
查看>>
mysql for Mac 下创建数据表中文显示为?的解决方法
查看>>
Glibc 和 uClibc
查看>>
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
查看>>
vs2012中自带IIS如何让其他电脑访问
查看>>
关于termux在手机上搭载Linux系统,python,ssh
查看>>
Redux:异步操作
查看>>