2015-05-04 2 views
0

Я делаю вызов ajax для jsp для рендеринга содержимого html, которое я отправляю в формате pdf. В jsp у меня есть несколько предупреждений, которые не вызываются. Это потому, что я делаю запрос ajax? Я не хочу использовать оповещение в блоке else js.Почему предупреждения в JSP не работают во время вызова ajax?

var objHTTP = new XMLHttpRequest(); 
objHTTP.open("post", "myJspToRenderAsPdf.jsp", true); 
objHTTP.setRequestHeader("Content-type", "text/html"); 
objHTTP.responseType = 'blob'; 
objHTTP.onload = function(event) { 
if (objHTTP.status == 200) { 

/* 
Code to download pdf 
*/ 

} else { 
alert('PDF was not generated'); 

} 
}; 
objHTTP.send(strData); 

код JSP:

<% 
if(something.equals("true")){ 

%> 
<script language = "javascript"> 
alert("alert not working"); 
</script> 

<% 
} 
%> 
+0

Так что проблема в том, что предупреждение в JSP, которое вы возвращаете, не появляется? –

+0

Да ... вот в чем проблема –

ответ

0

Сценарий от вызова асинхронного не будет оценен JavaScript двигателя. Лучше всего по-разному объяснить ваш сценарий возврата. Вызов метода javascript eval.

Что-то вроде этого

objHTTP.onload = function(event) { 
if (objHTTP.status == 200) { 
document.getElementById("SomeDIv").innerHTML = xhr.responseText; 
eval(document.getElementById('toExecute').innerHTML); // Relavent for You 
/* 
Code to download pdf 
*/ 

} else { 
alert('PDF was not generated'); 

} 
}; 

И в JSP

%> 
<script id="toExecute" language = "javascript"> 
alert("alert not working"); 
</script> 
<% 

выше линии eval(...) будет оцениваться ваши JavaScript и вы можете иметь ваше предупреждение.