Ajax 呼び出しを行う Web アプリケーションがあり、XML 構成ファイルで ajax 呼び出しに使用するサーバー ドメイン名を設定したいと考えています。javascriptでxmlファイルを解析する方法を示すこのチュートリアルを見ました。しかし、問題は、xml ファイルを解析するために Ajax 呼び出しを行う必要があることです。そのためには、サーバー ドメイン名を知る必要があります (既に xml からフェッチしようとしています)。
では、XML ファイルにサーバー名を設定し、それを使用して ajax 呼び出しを行うにはどうすればよいでしょうか? javascript ファイル自体の外部でサーバー名を構成できる他の方法はありますか?
編集:
このようなことを行うことはできますか (サーバー名を設定する必要はまったくなく、構成ファイルも必要ありません):
function getMetricNotifications()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","/rest/general/notifications/metrics",true);
xmlhttp.send();
var response = JSON.parse(xmlhttp.responseText);
return response;
}
の URL の先頭に
あるドメイン名localhost:8080
(ローカル) または(サーバー上) に言及せずにhttp://mysite.com:8080
xmlhttp.open("GET","/rest/general/notifications/metrics",true);
uncaught syntaxerror unexpected end of input
試してみたところ、最後の行の前に: が表示されました。何かご意見は?
2回目の編集:
function getMetricNotifications(){
var xmlhttp;
var response = '';
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
response = JSON.parse(xmlhttp.responseText);
return response;
}
};
xmlhttp.open("GET","/rest/general/notifications/metrics",true);
xmlhttp.send();
}
現在、この関数を呼び出して結果を出力すると、「未定義」と出力されますが、ブラウザーで残りのリソースに直接アクセスすると、正しい JSON 応答が得られます。応答が得られないのはなぜですか?