日期:2014-05-19  浏览次数:20663 次

大牛们来帮帮!ajax 交互成功后的 刷新问题,要给力阿
以下A.jsp
Java code

//省略DAO操作

<form id="fom1">
<input name="user" value=<%=respUser%> />
</form>




以下A.js
JScript code

function InnerRemarks() {
    
    var user= $("#user").val();
    $.ajax({
        url : "/serv.do",
        type : "post",
        dataType : "html",
        async : false,
        data : "opAction=InnerRemarks&user="+user,
        success : function(html) {
            alert(html);
            window.history.back(-2);
            alert(window.location.href);//这里显示是:/serv.do
                        window.location。reload();//无法实现刷新A。jsp
            
        },
        error : function() {
            alert("出错啦,请刷新重试!");
        }
    });
}



以下 /serv.do---》》

Java code


public class servextends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
               response.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession();
        String opAction = request.getParameter("opAction");
                if(opAction.equals("loadDBRemarks")){
                      out.print(sb.toString());
                 }
    }        
 }




问:我每次交互后都刷新A.JSP获取新值。。怎么做。??
锚定一下:有没有不要js交互 赋值的那种方式?


------解决方案--------------------
window.location。reload();你弄个。在哪里,刷新个球。是.
------解决方案--------------------

<form id="fom1">
<input type="text" id="user" name="user" value=<%=respUser%> />
</form>


function InnerRemarks() {

var user= $("#user").val();
$.ajax({
url : "/serv.do",
type : "post",
dataType : "html",
async : false,
data : "opAction=InnerRemarks&user="+user,
success : function(html) {
alert(html);
//window.history.back(-2);
//alert(window.location.href);//这里显示是:/serv.do
//window.location。reload();//无法实现刷新A。jsp
document.location.reload();//这样试试

},
error : function() {
alert("出错啦,请刷新重试!");
}
});
}
------解决方案--------------------
reload()是重新载入,数据回来了,但你直接丢弃了,又重新请求了一次服务器,拿回A.jsp的所有内容,意思就是,你请求的数据,你并没有使用,而是在拿到数据的一瞬间按了下F5
------解决方案--------------------
为什么要reload? 直接把返回来的数据 显示到页面上不就行了?
------解决方案--------------------
document.location.reload();
这个就是我们一般在游览器中常用的F5按钮。

你调用完后会有个返回函数,在这个返回函数中刷新数据列表。就是说,在你的服务器把数据准备好,返还个客户端,然后再客户端重新重新生成数据。

技术,在生成数据以前,要把以前的数据给清空了,不然数据会重复。
------解决方案--------------------
没明白既然要刷新干嘛ajax
------解决方案--------------------
感觉楼主没有明白ajax是什么,如果你要reload(),不如直接在serv.do里写cookie或者session,然后再在A.jsp里面取出来直接填到input里。