`

Ajax中的编码和缓存问题

    博客分类:
  • Ajax
阅读更多

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

 

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

 

2、Cache问题

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

  1. 客户端通过添加随机字符串解决。如:
    var url = 'http://dancewithnet.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);
分享到:
评论

相关推荐

    一个基于ajax和java缓存的聊天室

    一个基于ajax和java缓存的聊天室,用到了strust2的包,自己下载引用,注意所有的编码都为UTF-8,不然会有乱码问题。

    Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程

    5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能...

    jquery+ajax无刷新评论源码

    那就不必了,设置正确的页面编码和服务端脚本编码就不会出问题。由于jquery默认使用utf8传输数据,而且不提供设置编码, 这里只有自己做转换,如果你用form插件的时候就会发现,编码问题是不能回绝的。 完全开源,...

    有关Ajax中get和post的使用问题

    缓存:当每次访问的url相同,客户端直接读取本地缓存里面的内容,即使后台数据变化前台也不会有变化; 解决方法:在?后面链接一个num=【随机数Math.random()】或者num=【时间戳new Date().getTime()】,’1....

    JQuery AJAX 中文乱码问题解决

    解决方案:  提交和接收均为utf-8或gbk编码  对提交的数据调用JQuery函数encodeURI进行编码再提交或显示或链接既可 ... 注:注意浏览器和发布的项目的缓存问题,很多时候会影响解决。 记事本默认gbk编码

    Ajax课件学习(免费)

    AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest. •服务器端语言:服务器需要具备向浏览器发送特定信息的能力。Ajax与...

    在Ajax中使用get和post所遇到的问题及解决办法

    缓存:当每次访问的url相同,客户端直接读取本地缓存里面的内容,即使后台数据变化前台也不会有变化; 解决方法:在?后面链接一个num=【随机数Math.random()】或者num=【时间戳new Date().getTime()】,’1....

    ajax请求get与post的区别总结

    请求会缓存到浏览器中,可以通过历史记录查看用户信息,安全性低; post传送变化的数据显示,变动性访问; get通过url地址传送数据,数据量不能超过1024byte; post作为http消息的实体内容传送到服务器中,传送数据...

    探讨Ajax中同步与异步之间的区别

    GET方式的参数请求直接跟在URL后,以问号...使用GET进行AJAX请求时候会缓存导致出现的页面不是正确的,一般方法加random参数值;ajax.send(null)。 POST 向服务器提交数据用到。 需要将form表单中的值先取出转换成字

    JS实现Ajax的方法分析

    本文实例分析了JS实现Ajax的方法。分享给大家供大家参考,具体如下: 一、什么是Ajax 不刷新的情况下读取数据或提交数据 ...①Ajax里面文件的编码要和页面的编码一致 ②缓存、阻止缓存(好处大于缺点,所以不能什么时候

    JavaScript中的常见问题解决方法(乱码,IE缓存,代理)

    解决AJAX中文乱码常用的两种方法 1. 在客户端进行encodeURI(utf-8也可以不做,默认),在服务器端将iso-8859-1编码转为utf-8编码 2.在客户端进行两次encodeURI,在服务器端进行一次转换。 第2种方法能解决问题的...

    Grails 中文参考手册

    11.2 字符串的编码和解码 11.3 身份验证 11.4 关于安全的插件 11.4.1 Acegi 11.4.2 JSecurity 12 插件 12.1 创建和安装插件 12.2 理解插件的结构 12.3 提供基础的工件 12.4 评估规约 12.5 参与构建事件 12.6 参与...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    Django之缓存实例详解 Django之信号 Django之Form组件验证 作业 第23周 主机管理项目需求分析 主机管理项目架构设计 主机管理项目初始构建 主机管理项目编写插件基类 主机管理项目命令分发器 主机管理项目提取主机...

    英汉词典插件 for Discuz! 7.2 GBK utf8 v1.2.rar

    任何安装使用问题或者建议意见均可提交反馈,我们将尽力进行解答和完善,谢谢大家的支持。     PS:  本插件是完全开源和免费的,由开源插件网友情提供。任何安装使用问题或者建议意见均可提交反馈...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    11.2.6 缓存后替换和部分页缓存 11.2.7 缓存用户配置 11.2.8 缓存配置 11.2.9 输出缓存扩展 11.3 数据缓存 11.3.1 向缓存添加项目 11.3.2 简单的缓存测试 11.3.3 缓存优先级 11.3.4 使用数据源...

    asp.net知识库

    帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...

    天空网络电影系统源码

    在代码质量、运行效率、负载能力、安全等级、功能可操控性和权限严密性、效率最优化和负载能力最佳化设计等方面都在广大用户中有良好的口碑。 功能简介: 一、缓存机制 1、数据库缓存:SKYUC!支持 MYSQL 主从...

    ASP.NET4高级程序设计(第4版) 3/3

    11.2.6 缓存后替换和部分页缓存 365 11.2.7 缓存用户配置 367 11.2.8 缓存配置 368 11.2.9 输出缓存扩展 369 11.3 数据缓存 373 11.3.1 向缓存添加项目 373 11.3.2 简单的缓存测试 375 11.3.3 缓存...

Global site tag (gtag.js) - Google Analytics