2016-12-24 10 views
1

私はこの機能をjavascriptで持っているので、毎回違うイメージを表示したい:これはjsp(メソッドを使ってデータベースに接続する)からこのイメージを取得する。jQueryを使わずにjspからajaxにイメージURLを取得する

関数myFunction(イベントID){ xmlhttp = new XMLHttpRequest();ここで

xmlhttp.onreadystatechange= function(){  
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("imgevent").style.background = "url('xmlhttp.responseText') repeat scroll 0 0/cover "; 
    }else{ 
      document.getElementById("imgevent").innerHTML = "Waiting for getting Picture"; 
    } 
} 

xmlhttp.open("GET","pictures.jsp?e="+eventId,true); 
xmlhttp.send(); 

JSPコードです:

<% 
    String ev = request.getParameter("e"); 
    int eventt = Integer.parseInt(ev); 
    Ev e = new Ev(); 
    String img = e.getPicture(eventt); 
    response.setContentType("image/jpg"); 
%> 

私ははすぐに戻ってクライアントにサーバー(JSP)を応答方法(ジャバスクリプト) (メソッドであるかどうかはわかりませんよ

答えて

0

まず、画像に正しいコンテンツタイプを使用してください。それはimage/jpegであり、第2のeである。

次に、XMLHttpRequestを使用しないでください。

ページに画像を表示するとします。そのためにJS内の生の画像データに直接アクセスする必要はありません。あなたは非同期要求を必要といけない

document.getElementById("imgevent").style.background = 
    "url(pictures.jsp?e=" + eventId + ") repeat scroll 0 0/cover"; 
+0

?イベントID = "+ eventId、true); xmlhttp.send(); ? – maria

+0

はい。したがって、「XMLHttpRequestを使用しないでください」 – Quentin

+0

!私はjspとresponse.setContentType( "image/jpeg"); 。ありがとうございました! – maria

0

、あなたは、単にソースとしてURLを追加することができます: "、私は( "GET" xmlhttp.open使用する必要がいけないというeventPictures.jspを意味する

<img id="myimg" src="pictures.jsp?e=0"> 
<script> 
var img; 
window.onload=function(){ 
img=document.getElementById("myimg"); 
} 
function changeimg(eid){ 
img.src="pictures.jsp?e="+eid; 
} 
</script> 
+0

私は既にjsp onload = "myFunction(<%=eventId%>)を持っています。私はあなたのやり方を試してみます。ありがとう! – maria

+0

Chane myFunction with changeimg –

関連する問題