Я написал следующий код, который хорошо работает в старом Internet Explorer, но не в Firefox, Chrome, Edge и т. д. Проблема в том, что я импортирую json через http, а не через https? И если да, то как я могу это отрегулировать? Любая помощь приветствуется!
<head>
<script>
var myObj, x, txt = "";
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
txt += "<table border='1'>"
for (x in myObj.Data) {
txt += "<tr><td>" + myObj.Data[x].Name + "</td></tr>";
}
txt += "</table>"
document.getElementById("demo").innerHTML = txt;
}
}
xmlhttp.open("GET", "http://134.255.254.137/Data.json");
xmlhttp.send();
</script>
</head>
<html>
<body>
<div class = "container">
<h2>Daten aus JSON-Datei:</h2>
<div id = "demo">
</div>
</div>
</body>
</html>
Нет, я использую другой IP. Я знаю, что элемент существует в том виде, в каком я его там поставил. Я думаю, проблема в том, что новый браузер блокирует части кода.
Если это другой IP-адрес, вам необходимо реализовать CORS, если вы управляете серверной частью ... или использовать прокси. Также код, который выполняется над элементом на странице, не найдет этот элемент. Задержка в XMLHttpRequest может означать, что он будет существовать, когда вы действительно его ищете, но это не гарантировано. См. Почему jQuery или метод DOM, такой как getElementById, не находит элемент?
В зависимости от настроек веб-сайта, если веб-сайт работает как HTTPS, он может разрешать данные только из других источников HTTPS. Доступен ли JSON, который вы пытаетесь получить, в HTTPS-версии этого ресурса? (Я предполагаю, что нет, иначе вы бы не спросили, но просто убедитесь.) Вы контролируете весь веб-сайт и его настройки?
Я сбрасываю json с помощью скрипта Python. JSON сохраняется на сервере. Я хочу реализовать этот json в таблице на веб-сайте (wordpress). Но даже когда я просто запускаю сценарий, как указано выше (двойной щелчок по html-файлу), он не работает (только в старом Internet Explorer). Таким образом, проблема существует даже без участия какого-либо веб-сайта.
Итак, я только что увидел, что консоль в Chrome дает мне следующее: Untitled-2.html: 1 Не удалось загрузить 134.255.254.137/Data.json: на запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Следовательно, к источнику 'null' доступ не разрешен. Что это должно значить? Думаю, я могу загружать ресурсы только через HTTPS, а не через HTTP.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы загружаете эту страницу на тот же IP-адрес? Есть ошибки в консоли браузера? Также следует либо переместить JS-код ниже элемента
id = "demo", либо поместить его в обработчик события загрузки, чтобы убедиться, что элемент существует после завершения запроса.