jsp&&ajax responseText为空

贴出我的JavaScript方法:用Ajax技术实现向duMessage.jsp发送消息并获取处理后的数据,然后显示在id为showMsg的div里面。<scriptty... 贴出我的JavaScript方法:用Ajax技术实现向duMessage.jsp发送消息并获取处理后的数据,然后显示在id为showMsg的div里面。
<script type="text/javascript" language="javascript">
var http_request=false;
function processMSG(){
var msg=document.getElementById('message');
var url='doMessage.jsp?message='+msg.value;
//alert(elementId+" "+msg.value+" "+url);
//alert('<%=basePath %>'+"js/AjaxSendMSG.js");
createXMLHTTPRequest(url);
msg.value='';
msg.focus();
}

function createXMLHTTPRequest(url){

http_request=false;
if(window.XMLHttpRequest){ //Mozilla浏览器
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){//设置Mime(Multipurpose Internet Mail Extensions)类别
http_request.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){ //IE浏览器
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
alert("第一个catch出错了!!!");
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("第二个catch出错了!!");
}
}
}
if(!http_request){//有异常抛出,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
//指定处理请求响应返回数据的方法
http_request.onreadystatechange=processRequest;
//确定发送请求的方式和URL以及是否同步执行
http_request.open("GET",url,true);
http_request.send(null);
}

//处理返回消息方法
function processRequest(){
var processElement=document.getElementById("showMsg");
if(http_request.readyState == 4){ //对象返回状态,等于四表示请求响应完成,即得到返回数据
if(http_request.status == 200){ //服务器返回成功。404表示页面未找到
alert(http_request.responseText);
processElement.innerHTML="<span>我的值为"+http_request.responseText+"!!!</span>";

}else{
alert("您请求的页面不存在或已被删除!");
}
}
}
</script>

以下是:doMessage.jsp中的消息处理代码
<%@ page language="java" import="java.util.*;" pageEncoding="gb2312"
contentType="text/html; charset=gb2312"%>
<%
String message = new String(request.getParameter("message").getBytes("ISO8859-1"),"gb2312");
//response.setHeader("Charset","gb2312");

out.print("<span>我是" + message + "值!!</span>");
%>
展开
 我来答
4kyou
2010-11-05 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:41万
展开全部
你先调用的processRequest然后再发送请求responseText咋会有内容呢?
http_request.onreadystatechange=processRequest;
//确定发送请求的方式和URL以及是否同步执行
http_request.open("GET",url,true);
http_request.send(null);

这几句的顺序调整一下,先发送请求在调用processRequest
http_request.open("GET",url,true);
http_request.send(null);
http_request.onreadystatechange=processRequest;

doMessage.jsp中设置回复的头信息
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");

如果这样都还不行的话你就一步一个alert看程序执行到哪里也能检查出问题啊,靠你自己咯....
paperstudio
2010-11-03 · TA获得超过543个赞
知道小有建树答主
回答量:762
采纳率:0%
帮助的人:422万
展开全部
首先不要用ajax,直接在地址栏输入ajax请求的地址,带上自己手写的参数,看看有没有结果!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yg237482
2010-11-09
知道答主
回答量:57
采纳率:0%
帮助的人:13.6万
展开全部
jsp中将应该是:
response.getWiter().print((
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式