2

HTMLページがJSPページへのajax呼び出しを行い、JSPから日付を取得してHTMLページに表示するAJAXコードを試しています。以下のコードは、アラートボックスに応答全体を表示しているだけで、返されるのは次のような乱数だけです:1334754128581。responsetextがHTMLを返していません。このコードは、readystate4とstatus==200を返します。HTMLのコードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<script type="text/javascript">
function createXMLHttpRequest(){
  if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() {
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {}
try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {}
try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
throw new Error( "This browser does not support XMLHttpRequest." )
 };
return new XMLHttpRequest();
}

var AJAX = createXMLHttpRequest();

function handler() {
 if(AJAX.readyState == 4 && AJAX.status == 200) {
  var txt =  AJAX.responseText ;
  alert('Ajax success. Result: ' + txt);
 }else if (AJAX.readyState == 4 && AJAX.status != 200) {
   alert('Ajax failed');
 }
}

function show(){
  AJAX.open("GET", "service.jsp");
  AJAX.onreadystatechange = handler;  
  AJAX.send("");
};
</script>

<body>
  <a href="#" onclick="javascript:show();"> Click to get data from server</a>
</body>
</html>

JSPページ:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd"> 
<html>
<head>
<title> JSP </title>
</head>
<body>
<%=new java.util.Date()%>
</body>
</html>

このコードはTomcatv7で実行されています。

4

2 に答える 2

0

すみません、私の間違いです。すべてのjspsを処理するカスタムサーブレットがweb.xmlにありました。サーブレットは、乱数を取得していたライターに現在の時刻を書き込みます。

于 2012-04-20T14:55:22.680 に答える
0

Tomcat 6でテストしましたが、正常に動作しています。

あなたはあなたのAjax呼び出しで完全なウェブページを求めています、そしてあなたはそれを取り戻しています。彼らが言うように、それは設計通りに機能しています。問題はAjaxにあるのではなく、サーバーから返されるものにあります。たまたま出力されたWebページではなく、出力のみを返す必要があります。

<%=new java.util.Date()%>あなたの場合、それはあなたが現在の日付を返したい場合だけであるべきです。

于 2012-04-19T03:55:07.867 に答える