Ajax缓存和编码问题的最终解决方案

正义都去哪里了

正义都去哪里了

2016-02-19 22:30

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐Ajax缓存和编码问题的最终解决方案,希望大家看完后也有个好心情,快快行动吧!

ajax缓存和编码问题不难解决,下面是解决方法。

编码问题

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

默认使用UTF-8,如果一旦发现对象找不到的情况,可能js中输入了中文,同时js的编码格式可能为gb2312,可用记事本打开js,另存为utf-8格式的文档。

通过XMLHttpRequest获取的数据,默认的字符编码是UTF-8,如果前端页面是GB2312或者其它编码,显示获取的数据就是乱码。通过XMLHTTPRequest,POST的数据也是UTF-8编码,如果后台是GB2312或者其他编码也会出现乱码。

Cache缓存问题

由于IE的缓存处理机制问题,每次通过XMLHttpRequest访问动态页面返回的总是首次访问的内容,解决方法有:

1. 客户端通过添加随机字符串解决。如:

var url = 'http://www.bothv.com/';
url += '?temp=' + new Date().getTime();
url += '?temp=' + Math.random();

2. 在HTTP headers禁止缓存。如:

HTTP:

meta http-equiv="pragma" content="no-cache" /
meta http-equiv="Cache-Control" content="no-cache, must-revalidate" /
meta http-equiv="expires" content="Thu, 01 Jan 1970 00:00:01 GMT" /
meta http-equiv="expires" content="0" /

PHP:

header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

ASP:

Response.expires=0
Response.addHeader("pragma","no-cache")
Response.addHeader("Cache-Control","no-cache, must-revalidate")

JSP:

response.addHeader("Cache-Control", "no-cache");
response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");

3. 在XMLHttpRequest发送请求之前加上:

XMLHttpRequest.setRequestHeader("If-Modified-Since","0");
XMLHttpRequest.send(null);

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

Ajax缓存和编码问题的最终解决方案

Web开发
Ajax缓存和编码问题的最终解决方案

对于ASP编码问题的深入研究与最终解决方案

ASP
对于ASP编码问题的深入研究与最终解决方案

s8lol主宰符文怎么配

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

ajax session过期问题的几个解决方案

Web开发
ajax session过期问题的几个解决方案

ajax后退解决方案

Web开发
ajax后退解决方案

lol偷钱流符文搭配推荐

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

解决ajax缓存的问题

Web开发
解决ajax缓存的问题

ajax中文乱码问题解决方案

Web开发
ajax中文乱码问题解决方案

lolAD刺客新符文搭配推荐

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

win10磁盘占用100%怎么解决

win10磁盘占用100%怎么解决

用Ajax和RSS制作一个首页新闻

用Ajax和RSS制作一个首页新闻
下拉加载更多内容 ↓