Ajax 程序开发中常见问题

  1.ajax,action中response返回的xml文档格式错误时,eclipse debug进入不到action中.

  2.ajax缓存问题,需要加入xmlHttp.setRequestHeader(”If-Modified-Since”,”0″);便可解决.

  3.如果不是ajax提交,而设置了PrintWriter out = response.getWriter();则jsp会产生中文乱码.

  4.ajax返回xml乱码的原因

  response.setContentType(”text/xml;charset=GBK”);

  PrintWriter out = response.getWriter();

  这样才起作用,如果这样:

  PrintWriter out = response.getWriter();

  response.setContentType(”text/xml;charset=GBK”);

  那么response.setContentType(”text/xml;charset=GBK”);就不起作用了所以返回是乱码,这个问题搞了很久,代码还得仔细看啊.

  5.ajax表单提交

  xmlHttp.setRequestHeader(”Content-Type”,”application/x-www-form-urlencoded”);

  由于传过去的是utf-8编码的,所以在action 或servlet中接受时要进行相应转码

  6. 动态页的客户端网页缓存Ajax不运行

  在做注册程序验证码用户名是否可用、在线上传文件、删除文件、投票程序等不需要刷新网页即可出现结果的程序的时候,可能需要用到Ajax。其原理是JavaScript通过onChange、onClick、onMouseOut等事件取读网页当前的一些用户操作的数据,然后将这个数据传送给一个动态网页进行处理。

  Ajax调用的动态页,应该要让这个动态页不载入客户端的缓存。同理,Blog的Trackback程序,经常无法接收信息,可以尝试在Trackback程序的动态页写入前使其不写入缓存的语句。

  另外,也可以程序代码

  +math.random();

  使得每次提交一个随机数来避免客户端缓存。