jquery中的$.ajax()方法在firefox中正常返回数据,在ie7中无响应,请大家帮忙解决啊,谢谢。

豹先生_MR-BAO 2009-05-25 02:56:34
1,html页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ajax</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=gbk">

<script type="text/javascript" src="js/jquery.js" mce_src="js/jquery.js"></script>
<script type="text/javascript" src="js/jqueryXml.js"></script>
</head>
<body>
<input type="text" id="userName"/><br/>
<input type="password" id="password"/><br/>
<input type="button" value="提交" onclick="myCheck();"/>
<div id="myDiv"></div>
</body>
</html>

2,js:
function myCheck(){
var userName=$("#userName").val();
var password=$("#password").val();
$.ajax({
type:"get",
url:"xmlServlet",
data:{name:userName,password:password},
dataType:"xml",
success:function(data){
var obj=$(data);
var message=obj.children();
var text=message.text();
$("#myDiv").html(text);
}
});
}

3,servlet:
public class XmlServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml;charset=gbk");
String name=request.getParameter("name");
String password=request.getParameter("password");
System.out.println(password);
PrintWriter out=response.getWriter();
StringBuilder sb=new StringBuilder();
sb.append("<message>");
if(name==null || "".equals(name))
sb.append("can not be null").append("</message>");
if("raymond".equals(name))
sb.append("用户名存在").append("</message>");
else
sb.append("可以使用").append("</message>");
out.print(sb.toString());
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
...全文
612 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
JBoy1009 2011-07-28
  • 打赏
  • 举报
回复
对于缓存 cache:false 这样也一样的不一定都家随机数感觉有点麻烦
ethanlai123 2011-07-25
  • 打赏
  • 举报
回复
应该是xml的问题 ,你返回JSON得了
gw6328 2011-07-22
  • 打赏
  • 举报
回复
同样的问题 上面的方法不能解决!
吉普赛的歌 社区高级成员 T9 2011-04-22
  • 打赏
  • 举报
回复
很简单, 改成post就好了.
$.ajax({
type:"post",
丁码农 2011-04-22
  • 打赏
  • 举报
回复
应该是IE的缓存问题,参数中加个随机数或者时间戳就可以了。
先试试吧。编码问题一般只会导致“中文乱码”,而不是无响应。
hai_literature 2011-04-22
  • 打赏
  • 举报
回复
关于jQuery中Ajax请求在IE中无效的问题,解决办法:

在Ajax请求参数中加入一个唯一标识或者是一个GUID值....
data:{"cache":new Date().getTime(),name:userName,password:password}

保证每次发送的请求都是唯一的,这样就不会出现请求无响应的问题了,否则你会发现第一次的请求是有效的,之后的请求都没有起作用。

推荐QQ群:136574970


shuangyu2 2011-04-22
  • 打赏
  • 举报
回复
试了一下,没作用呀
freedom36 2009-05-26
  • 打赏
  • 举报
回复
up
sgf_2008 2009-05-26
  • 打赏
  • 举报
回复
编码的问题吗?
hnllxuwei 2009-05-25
  • 打赏
  • 举报
回复
原来中文版本的IE默认编码是gb2312,无论输出的是英文还是火星文,如果没强制修改页面编码,都认为是gb2312。
所以,要在Ajax调用的执行页面头部加上这句就OK了
header(’Content-Type:text/html;charset=utf-8′);
这和缓存无关,和服务器配置无关,和圈圈点点都无关,就是编码问题。
hnllxuwei 2009-05-25
  • 打赏
  • 举报
回复
应该是编码问题了,IE要修改成UTF-8
豹先生_MR-BAO 2009-05-25
  • 打赏
  • 举报
回复
谢谢,我在线等了,呵呵。弄了一上午没有弄出来
alibabademama 2009-05-25
  • 打赏
  • 举报
回复
帮你想想,可能是有些地方没引用到了













--------------完美的签名线-----------------
网页游戏开发第一站 http://dev.web863.com

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧