#javascript #d3.js
Вопрос:
Я решил перенести свой принудительный график D3v4 на d3v6, и, похоже, логика выборки изменилась. У меня не отображается ни один узел или ссылка. просто никого. Я почти уверен, что выборка вызывает проблему, потому что, как только я добавляю тестовые данные json непосредственно в код, все в порядке.
d3.json("graph.json", function (error, graph) {
if (error) throw error
})
Firefox не показывает никаких ошибок, но Chrome жалуется на «Не пойманный (в обещании) Ошибка типа: не удалось выполнить выборку.
Файл, который я пытаюсь извлечь, локально хранится в той же корневой папке, где находится файл .js.
В случае, если кто-нибудь столкнется с подобной проблемой, я был бы признателен за предоставление этой информации.
Ответ №1:
Вам нужно отправить файл на сервер с сервера, непосредственно загружая его из файловой системы, браузер не сможет загрузить файл и извлечь его.
Вы можете использовать любой сервер и просто отправлять статические файлы или даже использовать расширение Google Chrome «200 OK» для обслуживания файлов.
Fetch API внутренне ищет ресурсы, которые обслуживаются, он просто не может загрузить файл из файловой системы.
Комментарии:
1. Если это так, то они «усложнили» процесс разработки в D3v6. Поскольку я могу загрузить локальный файл с помощью D3v4 без каких-либо проблем.
2. Это напрямую связано с API выборки, который не может прочитать этот путь к файлу как http или http-ресурс. В большинстве случаев для этого требовался рендеринг файлов с сервера.
3. Я вижу, понял. Но все равно меня смущает, что я могу получить данные в D3v4. В любом случае, спасибо, что уделили мне время, Абхинав.