РЕШЕНИЕ: После сеанса Teamviewer с @skobaljic он выяснил, что я фактически не открывал html в localhost, а использовал файловую систему (как в файле: // …). Я прошу прощения за то, что тратил время на все это.
Я пытаюсь отправить некоторые php-массивы через Ajax и распечатать их, и, несмотря на получение ответа 200 OK, фактического эффекта в полученном html нет. В тексте состояния говорится «parsererror».
Файлы следующие:
<!DOCTYPE html> <html> <head> <title>Page Title Woo!</title> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'></script> </head> <body> <h1>Heading</h1> <p>Paragraph.</p> <ul></ul> <script type='text/javascript'> $(document).ready(function(){ $.getJSON('DbGetter.php', function(data) { console.log(data); $.each(data, function(key, array) { $('ul').append('<li id="' + key + '">' + array.longitude + ' ' + array.latitude + '</li>'); }); }) .fail(function(error) { console.log(error); }); }); </script> </body> </html>
и php:
<?php $servername = "localhost"; $username = "testuser"; $password = "password"; $dbname = "Locations"; header('Content-Type: application/json'); // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM places"; $result = $conn->query($sql); if ($result->num_rows > 0) { //declare associative array $array = array(); $num = 0; // output data of each row while($row = $result->fetch_assoc()) { //store them in an array $place = array( 'id' => $row["id"], 'latitude'=> $row["latitude"] , 'longitude'=> $row["longitude"], 'place_name' => $row["place_name"], 'country_code'=> $row["country_code"], 'postal_code'=> $row["postal_code"]); /* echo "Coordinates: " . $row["latitude"]. " " . $row["longitude"]. " - Name: " . $row["place_name"]. " " . "<br>"; */ //building the second associative array $array[$num] = $place; $num += 1; } echo json_encode($array); } else { echo json_encode("0 results"); } $conn->close(); ?>
Я пробовал смотреть на ценность через firebug, но либо я слепой, либо просто не хранился нигде в DOM. Я довольно новичок в веб-приложении в целом, поэтому я не знаю, как его отладить.
Выполняя php, я получаю: [{"id":"1","latitude":"57.0502","longitude":"9.9173","place_name":"1000fryd","country_code":"DK","postal_code":"9000"},{"id":"2","latitude":"58.0502","longitude":"10.9173","place_name":"same_place","country_code":"DK","postal_code":"9000"}]
Какие 2 строки я ожидаю.
Также нет запроса XHR, отмеченного Firebug.