Извлечение данных из JSON (внешний URL-адрес http: //) с использованием AJAX? - PullRequest
0 голосов
/ 21 марта 2020

Как извлечь данные из файла JSON? Это не мой URL, он принадлежит внешнему источнику (ABS, компания, которая производит информацию о погоде). Эти данные о погоде были помещены в JSON файл. Почему я не могу получить доступ к его информации? и хранить его

<html>

<head>
    <meta content="text/html; charset = ISO-8859-1" http-equiv="content-type">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <script type="application/javascript">
        function loadJSON() {
            var data_file = "http://reg.bom.gov.au/fwo/IDW60901/IDW60901.94610.json";
            var http_request = new XMLHttpRequest();

            http_request.onreadystatechange = function() {

                if (http_request.readyState == 4) {
                    // Javascript function JSON.parse to parse JSON data
                    var jsonObj = JSON.parse(http_request.responseText);

                    // jsonObj variable now contains the data structure and can
                    // be accessed as jsonObj.name and jsonObj.country.
                    document.getElementById("name").innerHTML = jsonObj.name;
                    document.getElementById("air_temp").innerHTML = jsonObj.air_temp;
                }
            }

            http_request.open("GET", data_file, true);
            http_request.send();
        }
    </script>

    <title>The Current Weather</title>
</head>

<body>
    <h1>Weather in Perth City</h1>

    <div class="central">
        <button type="button" onclick="loadJSON()">Show Information </button>
    </div>

</body>

</html>

1 Ответ

1 голос
/ 21 марта 2020

Вы можете отправлять запросы перекрестного происхождения, используя такие сайты, как:

https://cors-anywhere.herokuapp.com/<url>

<html>

<head>
    <meta content="text/html; charset = ISO-8859-1" http-equiv="content-type">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

    <script type="application/javascript">
        function loadJSON() {
            var data_file = "https://cors-anywhere.herokuapp.com/http://reg.bom.gov.au/fwo/IDW60901/IDW60901.94610.json";
            var http_request = new XMLHttpRequest();
            

            http_request.onreadystatechange = function() {

                if (http_request.readyState == 4) {
                    // Javascript function JSON.parse to parse JSON data
                    var jsonObj = JSON.parse(http_request.responseText);

                    // jsonObj variable now contains the data structure and can
                    // be accessed as jsonObj.name and jsonObj.country.
                    document.getElementById("name").innerHTML = jsonObj.observations.data[0].name;
                    document.getElementById("air_temp").innerHTML = jsonObj.observations.data[0].air_temp;
                }
            }

            http_request.open("GET", data_file, true);
            http_request.setRequestHeader("X-Requested-With","XMLHttpRequest");
           http_request.send();
        }
    </script>

    <title>The Current Weather</title>
</head>

<body>
    <h1>Weather in Perth City</h1>

    <div class="central">
        <button type="button" onclick="loadJSON()">Show Information </button>
    </div>
    <div id ="name"></div>
    <div id="air_temp"></div>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...