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>");
%> 展开
<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>");
%> 展开
3个回答
展开全部
你先调用的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看程序执行到哪里也能检查出问题啊,靠你自己咯....
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看程序执行到哪里也能检查出问题啊,靠你自己咯....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询