最近刚接触ajax,想用他刷新a.jsp,并传值给b.jsp(b.jsp上显示的是个人的照片,通过传递过来的staffID改变),然后b.jsp上的照片改变。高手帮忙指导下。
从网上下了个例子,怎么调也调不通、
ajaxTest.jsp
————————————————————————————————————
<%@ page language="java" contentType="text/html; charset=GB2312"
    pageEncoding="GB2312"%>
<%@ page import="com.hello.JXLEXcel"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'ajaxIndex.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    --><script type="text/javascript">
function test(){
    var url = "getData.jsp?username="+document.getElementById("username").value;
    sendRequest(url);
}    
var XMLHttpReq = false;
//创建XMLHttpRequest对象       
function createXMLHttpRequest() {
    if(window.XMLHttpRequest) { //Mozilla 浏览器
        XMLHttpReq = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) { // IE浏览器
        try {
            XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
}
//发送请求函数
function sendRequest(url) {
    createXMLHttpRequest();
    XMLHttpReq.open("GET", url, true);
    XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
    XMLHttpReq.send(null);  // 发送请求
}
// 处理返回信息函数
function processResponse() {
    if (XMLHttpReq.readyState == 4) { // 判断对象状态
        if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
            var result = XMLHttpReq.responseText;    
            document.getElementById("data").innerHTML = result;   
            out.close();
            return;//
        } 
        else { //页面不正常
            window.alert("您所请求的页面有异常。");
        }
    }
}
</script>
  </head> 
  <body>
    <table>
        <tr>
            <td>ajax提取数据:</td>
        </tr>
        <tr><td><div id="data">原始数据</div></td></tr>
        <tr><td><input type="text" name="username" id="username"/></td></tr>
        <tr><td><input type="button" value="submit" onclick="test()"/></td></tr>
    </table>
  </body>
</html>
__________________________________________________________________________________________--
getData.jsp
__________________________________________________________________________________________
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
out.print("username is :"+request.getParameter("username"));
%>在eclipce里调试的时候老是出现问题,跳到这一步 else { //页面不正常
            window.alert("您所请求的页面有异常。");
        }
显示为
("您所请求的页面有异常。");
请问高手这是什么问题怎么解决,我的这种刷新怎么样才能实现谢谢了

解决方案 »

  1.   

    改变图片,不能使用ajax,因为ajax不能请求二进制数据。你可以通过直接修改img的src来达到更换图片的目的。
    即直接将img的src从xx.do?id=1修改为xx.do?id=2,这样就可以达到你的目的,浏览器会自动重新请求图片数据,并更换图片的。
      

  2.   

    谢谢
    可能你没看懂我的意思,我没有用ajax请求二进制数据,我请求的是staffID,然后我自己通过数据库查询获得照片显示
    不过你说的方法挺吸引我,你说的那种具体是怎么做的呢
      

  3.   

    var XMLHttpReq = false;  这里有问题吧!! 怎么定义的是boolean类型的  直接这样改试试 var XMLHttpReq 
      

  4.   

     XMLHttpReq.send(null); // 发送请求 这里面怎么发送的请求是个null??