2017-10-19 28 views
0

我有一個具有服務器配置的Json(config/server.json)配置文件。 如:如何讀取json配置文件並將該參數設置爲ajax

{ 
    "server": "127.0.0.1" 
} 

我想讀到「服務器」參數和值分配給我的其他的jQuery功能。

如:

var server = ""; 

$(document).ready(function() { 
      loadConfigFile(); 
     loadCustomers(); 
}); 

    function loadConfigFile() { 
      $.getJSON('config/server.json', function(jd) { 
       $.each(data.server, function(i,s){ 
        alert(s); 
       }); 
      }); 
     }; 

    function loadCustomers() { 
      $ 
        .ajax({ 
         type : 'GET', 
         url : server+':8080/cache/getCustomers', 
     ... 
} 

我loadConfig文件不被讀取JSON file..What IM做錯了什麼?

+0

創建'VAR主機= { 「服務器」: 「127.0.0.1」};',並呼籲:'host.server'到獲得價值。並且你的錯誤是'function(jd)'而且正確的是'function(data)' – 2017-10-19 23:23:50

+0

@headmax你能代碼示例嗎? var host = {「server」:「127.0.0.1」}不是有效的json – Ratha

+0

Ok給我5分鐘.. – 2017-10-19 23:27:27

回答

1

確保/config/server.json由服務器和有效地址暴露出來。您可以通過添加到瀏覽器來嘗試它。它應該顯示整個文件內容。下一步,錯誤檢查瀏覽器控制檯..

檢查this

$(document).ready(function() { 
    $.getJSON('config/server.json', loadCustomers); 
}); 

function loadCustomers(configFile) { 
    $.ajax({ 
    type : 'GET', 
    url : configFile.server+':8080/cache/getCustomers', 
}); 
} 
+0

對不起,這是行不通的,我把警報放在loadCustomers(configFile)函數,在ajax調用之前,而不是打印 – Ratha

+0

@Ratha這段代碼不會打印任何內容,但可以解決代碼中的問題。你可以在$ .ajax之前添加alert(configFile.server),如果你想打印服務器,但是確保配置文件可以訪問。 – bigless

+0

我覺得我的html無法讀取我本地文件夾中的那個json文件。我應該將該json文件託管在網絡服務器中並訪問它嗎?在這種情況下,常規方法是什麼?我的html和配置文件位於單獨的文件夾中,稱爲'html','config'等等。我的要求是,允許用戶訪問不同主機的HTML頁面 – Ratha

0

在你的config/server.json補充一點:

{"server": "127.0.0.1"} 

您的客戶端腳本:

var server = ""; // don't need 

$(document).ready(function() { 
      loadConfigFile(); 
     loadCustomers(); 
}); 

    function loadConfigFile() { 
      $.getJSON('config/server.json', function(data) { 
       //HERE YOu need to get the name server 
       alert(data.server); 
      }); 
     }; 

    function loadCustomers() { 
      $.ajax({ 
         type : 'GET', 
         url : server+':8080/cache/getCustomers', 
         success:function(data){ 
          alert(data); 
          console.log(data); 
         $.each(data, function(i,s){ 
          alert(s); 
         }); 
         } 
} 
+0

此警報不打印... – Ratha

+0

@Ratha張貼你的JSON我認爲你有問題讓我顯示server.json如果不是最大我可以適應這個腳本。 – 2017-10-19 23:46:15

+0

這隻能打印服務器,但不能解決異步操作。 loadCustomers中的服務器將爲空字符串.. – bigless

相關問題