動的 URL を作成したいだけです。listServices メソッドを呼び出していますが、listService から呼び出している getPortNumber が機能していないため、期待どおりに機能しています。getPortNumber メソッドにデバッグポイントを追加しました。domainValue の値を取得していますが、$(document).ready(function() の後でデバッグできません。コントロールは直接 portNumber を返すようになり、最終的な URL でポート番号の値が未定義として取得されます。チェックして、 port_url (json ファイル) を検証しました。私の json ファイルは次のようになります
{
"servers": [
{
"listeningPort": "6080",
"shutdownPort": "8180",
"redirectPort": "8443",
"sslPort": "8443",
"openWirePort": "61610",
"jmxPort": "9332",
"category": "Test A"
}
}
私は打たれた。この問題が、別のメソッドから JavaScript メソッドを呼び出すことに起因しないことを願っています。
function getPortNumber()
{
var portNumber;
var domainValue = $("#domain").val();
$(document).ready(function() {
$.getJSON(port_url, function(result) {
$.each(result, function() {
$.each(this, function(k, v) {
if (v.category == domainValue) {
portNumber = v.listeningPort;
return false;
}
});
});
});
});
return portNumber;
}
function listServices()
{
$(document).ready(function() {
$("#list").text("");
var jList = $("#list");
var listOfServers = $("#servers").text();
var serverArray = listOfServers.split(",");
for (var i = 0; i < serverArray.length; i++)
{
var port = getPortNumber();
var tempURL = "http://"+serverArray[i].trim().toLowerCase()+".javaworkspace.com:"+port+"/services/listServices";
jList.append("<li><a href="+tempURL+" target='_blank'>"+tempURL+"</a></li>");
}
});
}