我在a.jsp中用ajax 调用b.jsp ,然后b.jsp返回给a.jsp 一个字符串“no” ,可是在a.jsp 中alert()该字符串,后边多了18个空格,不知道为什么!!两个jsp的主要代码如下:a.jsp:/*ajax 验证是否可以修改*/
var xmlhttp;
//分辨浏览器,获取XMLHttpRequest对象
function create(){
if(window.XMLHttpRequest){
//IE7,IE8,火狐,傲游
xmlhttp = new XMLHttpRequest();
} else if(window.ActiveXObject){
//IE5,IE6,360?
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}function check(){
create();
//根据xmlhttp对象的状态,调用回调函数
xmlhttp.onreadystatechange = callback;
//建立与服务器端的连接 : 提交的方式,提交目标的地址,是否使用异步机制
xmlhttp.open("GET","b.jsp?random="+Math.random(),true); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //发送数据
xmlhttp.send(null);
}function callback(){
//如果xmlhttp对象的状态为4,则运行下面的程序
if(xmlhttp.readyState == 4){
//响应的数据是否正确 status响应码
if(xmlhttp.status == 200){
//获取xmlhttp响应结果 二种:responseText:字符串 responseXML:xml文档 JSON
var result = xmlhttp.responseText;
alert(result + result.length);
}
}
}
b.jsp:<%@page contentType="text/html; charset=GBK" %>
<%@page import="java.io.PrintWriter"%>
<%
//设置响应报头
response.setContentType("text/html;charset=GBK");
//获取输出对象
PrintWriter out2 = response.getWriter();out2.print("no");
%>
运行程序最后在a.jsp页面的显示对话框如下
如果我把b.jsp的内容改成<%
out.print("no");
%>则返回的字符串所含空格数会变小,如下图
经过我实验,发现返回的字符串里所含的空格的多少和b.jsp里面的内容多少有关,内容越多空格越多,反之内容越少空格越少,但是空格数不会变为0,最小变成了8,这是为什么啊?还请大仙们给解释下~
AjaxAjax获得返回值异常
var xmlhttp;
//分辨浏览器,获取XMLHttpRequest对象
function create(){
if(window.XMLHttpRequest){
//IE7,IE8,火狐,傲游
xmlhttp = new XMLHttpRequest();
} else if(window.ActiveXObject){
//IE5,IE6,360?
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}function check(){
create();
//根据xmlhttp对象的状态,调用回调函数
xmlhttp.onreadystatechange = callback;
//建立与服务器端的连接 : 提交的方式,提交目标的地址,是否使用异步机制
xmlhttp.open("GET","b.jsp?random="+Math.random(),true); xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //发送数据
xmlhttp.send(null);
}function callback(){
//如果xmlhttp对象的状态为4,则运行下面的程序
if(xmlhttp.readyState == 4){
//响应的数据是否正确 status响应码
if(xmlhttp.status == 200){
//获取xmlhttp响应结果 二种:responseText:字符串 responseXML:xml文档 JSON
var result = xmlhttp.responseText;
alert(result + result.length);
}
}
}
b.jsp:<%@page contentType="text/html; charset=GBK" %>
<%@page import="java.io.PrintWriter"%>
<%
//设置响应报头
response.setContentType("text/html;charset=GBK");
//获取输出对象
PrintWriter out2 = response.getWriter();out2.print("no");
%>
运行程序最后在a.jsp页面的显示对话框如下
如果我把b.jsp的内容改成<%
out.print("no");
%>则返回的字符串所含空格数会变小,如下图
经过我实验,发现返回的字符串里所含的空格的多少和b.jsp里面的内容多少有关,内容越多空格越多,反之内容越少空格越少,但是空格数不会变为0,最小变成了8,这是为什么啊?还请大仙们给解释下~
AjaxAjax获得返回值异常
解决方案 »
- hibernate的联合主键查询
- Java NullPointerException异常
- 关于hibernate怎么判断是更新还是插入
- <img alt="验证码" src="getImageCode.action" >怎么在action类返回文件的流啊
- hibernate一对一唯一外键关联删除操作问题
- PHP+jQuery+JSON与Java Servlet通信问题
- 在Action中使用SmartUpload初始化问题
- dom4j读取UTF-8文件时对元素的内容处理出错
- 视频聊天网站方面的软件需求:(初稿)
- sql之left join、right join、inner join的区别
- 线程往数据库里插数据时偶尔会报错
- 泛型问题
<%@page contentType="text/html; charset=GBK" %>
<%@page import="java.io.PrintWriter"%>
<%@page import="java.io.OutputStream"%>
<%
//设置响应报头
response.setContentType("text/plain;charset=GBK");
//获取输出对象
OutputStream os = response.getOutputStream();
os.write("no".getBytes());
os.close();
%>b.jsp
改成这样就没空格啦!
不懂,同问!
每一次输出都占用一行,然后xmlhttp.responseText 把所有的执行的html结果全部获取到了。
嗯,我试了,果真可以。不过我发现我的也不用改,直接在后边加上个out2.close();就行了。所以说用PrintWriter 或 OutputSteam都行。谢谢各位啦...