- PR -

sessionに登録した文字列をJavascriptで取得したい

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-22 18:40
ありがとうございます。

いえ、xmlHttp.responseTextの話です。

if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
 var ret = xmlHttp.responseText;
 alert(ret); //←これが空文字です。

一応statusも取得できているのですが・・。


一連のJavascript部を載せた方が良いですね、申し訳ありません。
**********************************************************
function createXMLHttpRequest() {
 var xmlHttp = false;
 /*@cc_on @*/
 /*@if (@_jscript_version >= 5)
  try {
   xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (e2) {
    xmlHttp = false;
   }
  }
  @end @*/
  if (!xmlHttp && typeof XMLHttpRequest != "undefined") {
   xmlHttp = new XMLHttpRequest();
  }
 return xmlHttp;
}

function callTestAjaxSrv(xmlHttp) {
 var url = "http://localhost:8080/App/sampleAJAX.do?par=1";
 xmlHttp.open("GET", url, false);
 xmlHttp.send(null);
}
// @呼出し部
function testAJAX() {
 // XMLHttpRequest
 var xmlHttp = createXMLHttpRequest();

 // 呼出し先URL接続
 callTestAjaxSrv(xmlHttp);

 // 通信結果取得成功
 if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  var ret = xmlHttp.responseText;
  alert(ret);
  ..(以下省略)
 }
**********************************************************
こんな感じです。

よろしくお願いします。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-07-22 18:48 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-07-22 18:50 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-07-22 20:33
サーバ側で何か出力はしていないんですか?
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-22 20:58
ありがとうございました、取得できました。
(過去ログでかつのりさんのレス、拝見させていただきました)

struts-config.xmlの定義が正しくありませんでした。

本題と違いますが、1秒リロードを行っているのですが、
最初に呼ばれた時のActionのみしか入ってこないようです。

これは、キャッシュ等が効いてるのでしょうか?
 xmlHttp.open("GET", url, false);
でfalseを指定しているのですが・・。

xmlHttp.responseTextでalert表示すると確かに毎秒実行はされているようですが、
Actionに入った形跡がありません(ログ参照)。




[ メッセージ編集済み 編集者: 未記入 編集日時 2008-07-22 21:09 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-07-22 21:20
falseの意味を理解して使っていますか?
openの第3引数のtrue/falseは非同期であるかというフラグです。
キャッシュ云々とは関係有りません。

ちなみに同期ならば、readyStateをチェックする必要も有りません。

キャッシュの問題じゃないかというと、キャッシュの問題でしょう。
例えば、urlにシステム時間を付与する等の対策が有名です。
まずは「ajax キャッシュ」でググってみましょう。
ここに解説を書くまでもなく、詳しい解説がたくさん出てきますよ。
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-22 22:59
かつのりさん、的確なご回答ありがとうございました。

実現できました。

一日、ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)