d3.js 是一個流行的 JavaScript 數據可視化庫。它提供了許多強大的函數和工具,可以幫助用戶輕松地處理和呈現數據。其中一個最常用的函數是 d3.json(),用于讀取 JSON 數據。
然而,許多人可能不知道 d3.json() 在讀取本地文件時存在限制。即使將 JSON 文件放置在與 HTML 文件相同的目錄中,也不能直接使用 d3.json() 讀取它。
這是因為 d3.json() 只能加載通過 HTTP 請求傳輸的文件。換言之,您必須將 JSON 文件放在服務器上才能使用 d3.json() 讀取它。如果要在本地環境中測試您的d3.js應用程序,則需要使用 Web 服務器。您可以使用 Web 服務器軟件,例如 Apache 或 Nginx,也可以使用簡單的輕量級服務器軟件,例如 http-server。
// 以下代碼在本地文件中無法正常工作 d3.json("data.json", function(data) { console.log(data); });
解決方法是使用 Ajax 技術或一個本地 Web 服務器。其中,Ajax 可以使用 XMLHttpRequest 對象來加載 JSON 文件。以下是一個使用 Ajax 加載本地 JSON 文件的示例代碼:
// 使用 Ajax 加載本地 JSON 文件 var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var data = JSON.parse(this.responseText); console.log(data); } }; xhttp.open("GET", "data.json", true); xhttp.send();
這種方法可以在沒有 Web 服務器的情況下使用,但是需要處理 XMLHttpRequest 的復雜性。建議在使用 d3.js 時始終使用 Web 服務器。
上一篇d3.json使用
下一篇c 返回json成功