日期:2014-05-16  浏览次数:20657 次

responseText返回的却是网页的HTML代码
PrintWriter来输出信息。但为什么得到的responseText却会是整个页面的HTML代码?会是什么原因?谢谢 

这里的JS是用标签写出来的,动态的. 

但是我把JS拷贝出来,放到另一个工程,单另写一个action,返回却是正常的.

------解决方案--------------------
struts?
因为你返回了一个jsp,就是你指向的jsp
在用struts得时候,jsp除了必要的标签,其余的html什么的都不能要
而且不必要得空格回车都不能有
这样responseText才能取得正确的值。
你要想象,jsp叶面打出来什么样,responseText就出什么样
------解决方案--------------------
[Quote=引用:]
struts?
因为你返回了一个jsp,就是你指向的jsp
在用struts得时候,jsp除了必要的标签,其余的html什么的都不能要
而且不必要得空格回车都不能有
这样responseText才能取得正确的值。
你要想象,jsp叶面打出来什么样,responseText就出什么样
[/Quot]

说的在理
------解决方案--------------------
支持下
------解决方案--------------------
responsetext不是返回的网页的html代码是什么?

responsebody是二进制的.
responsexml是xml的
responsetext就是html源码的
------解决方案--------------------
问题说的不清楚,楼主可以跟帖补充下啊。
4楼说的对。你是不是 需要responsexml ???
------解决方案--------------------
呵呵,看你想返回什么?可以是XML啊
------解决方案--------------------
探讨
楼主的意思很明白,他用PrintWriter来输出一段信息,比如一个字符串,想用responseText得到这个字符串,然而却得到了整个jsp页面的代码。

问题出在:你在action中处理Ajax请求的方法中返回了一个jsp页面。

解决:1.在action的配置中取消 <result>返回页面配置。
2.在action中处理Ajax请求的方法中返回空,如:return null;
这是struts2下的解决。
若是struts1,同样不要让action返回到一个页面。

------解决方案--------------------
8楼所说我赞同
------解决方案--------------------
ajax的responseText返回的本来就是页面代码,至于楼主的问题还是没看明白
------解决方案--------------------
.......
struts得工作流程
jsp提交->ActionServlet->在actionServlet里调用Action->返回jsp
Servlet原始的工作流程
jsp提交->Servlet
你再Servlet里面能够取到是因为你返回的是Servlet
所以调用Servlet能够取到
而struts里面,你再ActionServlet这一段调用Out毫无意义。因为struts返回的不是ActionServlet,而是jsp
注意,jsp也是一个Servlet,但不是ActionServlet
你可以看作ActionServlet进行了转发
所以你要取到值,只能在jsp里面打出来!!!!!!!
------解决方案--------------------
探讨
responseText,对于它的返回值,我是知道. 
但是在action中,out流.里面写入的字符串,responseText拿不到.responseText拿到的只是整个网页的HTML代码. 
action返回的是null.流也刷新过,并且关闭了. 

很奇怪的是,我使用servlet就可以得到 out 流里写入的字符串. 

单建立一个测试工程,使用action,却是正常. 

我想来了解的是,什么情况下可以会出现返回整个HTML代码. 
jsp页面有自定义标签,有关系吗? 
TagUtils.getInstanc…