невозможно получить данные JSON с IP-адреса [дубликата]

0

эй, ребята, я не могу получить данные о кросс-домене json, вот мой код, ниже которого не работает

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.getJSON demo</title>
  <style>
  img {
    height: 100px;
    float: left;
  }
  </style>
  <script src="js/jquery.min.js"></script>
</head>
<body>

<div id="images"></div>

<script>
(function() {
  var furl= "http://192.168.2.36/gemadmin/display.php?callback=?";
  $.getJSON( furl)
    .done(function( data ) {
      console.log(data);
    });
})();
</script>

</body>
</html>

и этот код работает правильно, так как его просто localhost

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.getJSON demo</title>
  <style>
  img {
    height: 100px;
    float: left;
  }
  </style>
  <script src="js/jquery.min.js"></script>
</head>
<body>

<div id="images"></div>

<script>
(function() {
  var furl= "http://localhost/gemadmin/display.php";
  $.getJSON( furl)
    .done(function( data ) {
      console.log(data);
    });
})();
</script>

</body>
</html>

почему первая версия не работает? и каково решение, чтобы оно работало?

код сервера (display.php)

<?php
    include 'config.php';
    $sql = "select * from menu;";
    $result= $mysqli->query($sql);
    $data = $result->fetch_all( MYSQLI_ASSOC );
    header('Content-Type: application/json');
    echo json_encode( $data );
    ?>

Ответ: нашел ответ вместо $.getJSON(), используя $.get, и выполните пример синтаксического анализа json jQuery.getJSON demo img {height: 100px; float: left; плыть налево; } }

<div id="images"></div>

<script>
(function() {
  var furl= "http://localhost/gemadmin/display.php?callback=?";
  $.get( furl)
    .done(function( data ) {
      var obj = JSON.parse(data);
      console.log(obj);
    });
})();
</script>

</body>
</html>

не забудьте добавить ' callback =? 'к вашему URL-адресу

  • 0
    просто потому, что вы обращаетесь к данным admin , этот запрос недействителен, если вы не вошли на другой сайт.
  • 0
    Вы уже нашли причину: « Я не могу получить данные междоменного JSON ». Междоменные запросы Ajax не разрешены, если вы не установите соответствующие заголовки CORS. Об этом уже есть множество обсуждений, если вы ищете термины «ajax» и «cors».
Теги:

2 ответа

0
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $.getJSON("demo_ajax_json.js",function(result){
      $.each(result, function(i, field){
        $("div").append(field + " ");
      });
    });
  });
});
</script>
</head>
<body>

<button>Get JSON data</button>
<div></div>

</body>
</html>

demo_ajax_json.js

{ 
  "firstName": "John",
  "lastName": "Doe",
  "age": 25
}

Простой пример

0

Использовать как это

            $.ajax({
                    url: "URL",
                    type: "POST",
                    contentType: "application/json;charset=utf-8",
                    data: JSON.stringify("YOUR JSON"),
                    dataType: "json",
                    success: function (response) {
                        alert(response);
                    },

                    error: function (x, e) {
                        alert('Failed');
                        alert(x.responseText);
                        alert(x.status);
                    }
                });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню