2015-10-08 2 views
1

Моя проблема может быть простой, но я не могу просто найти, что это неправильно. Я делаю код ajsx/jQuery для практики и обучения больше, но у jQuery и AJAX есть странная вещь для меня. Я не могу найти полную информацию о типах данных и способах получения и управления каждым типом (текст, html, json, jsonp (я не знаю, что такое jsonp) и т. Д.).Проблемы с AJAX/jQuery с извлечением JSON и dataType

Я скопировал заголовки на странице HTML и в файле PHP и даже в объекте AJAX.

Первый DATATYPE вопрос: Если я прошу text или html данных, кажется, что если я делаю .append() или .text(), кажется, что он копирует все файлы PHP буквально и написать его в предупреждении или в HTML-документ, он копирует все PHP-код, хотя я хочу только получить то, что я эхо в моем php-файле.

Иногда я делаю echo "test";, и если я сделаю предупреждение о данных, полученных в виде текста или html, он выведет test";, являясь эхом последней строки в файле php. Так что эта вещь DataType меня сбивает с толку.

Тогда вопрос AJAX/JSON. Я копирую простой код, чтобы вы могли понять, в чем проблема. Код - это простой код для тестирования, потому что я не хотел его усложнять, пока не уверен, что основные вещи работают.

HTML FILE:

<!DOCTYPE HTML> 
<html> 
<head> 
    <meta http-equiv="Content-type" value="text/html; charset=UTF-8" /> 
    <title></title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      //Guardar al cargar la pagina la ip en el servidor. 
      var a1 = { 
       url: "servidor_datos.php", 
       async: true, 
       type: "GET", 
       contentType: "application/json; charset=utf-8", 
       dataType: 'json', 
       success: function(data){ 
        alert(data); 
        //$("#contador").append("test"); 
       }, 
       error: function(){ 
        alert("Error"); 
       } 
      }; 

      $.ajax(a1); 
     }); 
    </script> 
</head> 
<body> 
    <div id="contador"></div> 
</body> 
</html> 

PHP FILE:

<?php 
header('Content-Type: application/json; charset=utf-8'); 
$json = array("data" => "asdf"); 
$json = json_encode($json); 
echo $json; 

Я пытаюсь сделать уникальный счетчик IP посетителя и я не уверен, если я делаю это правильно. Сначала я проверяю, существует ли IP, и если нет, я добавляю новый ip в базу данных. Затем я выполняю запрос Ajax, используя setInterval каждые 5 секунд, чтобы проверять и обновлять количество уникальных посетителей и обновлять его асинхронно.

Можно ли использовать setInterval для непрерывного циклирования и проверки, или я должен делать это по-другому, как событие сервера, запускающее фрагмент кода, который проверяет количество посетителей и отправляет их асинхронно? Что бы это ни было, я бы хотел, чтобы он обновлялся без обновления страницы. Поэтому я не знаю, должен ли сервер, отправляемый событиями или веб-рабочими JavaScript, быть лучшим подходом.

+0

В чем вопрос? –

+1

Что это такое? Как упоминалось выше, мы не видим никаких проблем. – stanley1943

+0

Включение информации о текущем выходе и выходе желания было бы полезно, чтобы помочь кому-то ответить на это. –

ответ

0

Вы можете использовать dataType: «JSONP», если этот запрос Ajax находится в разных доменах, поскольку у вас может быть проблема CORS. Также посмотрите на использование

$ .getJSON ("servidor_datos.php"). Done (функция (данные) {console.log (данные)});

Используйте console.log(), чтобы увидеть, как PHP-скрипт возвращается в ваш браузер. Откройте вкладку консоли в инспекторе браузеров.

Также, чтобы получить доступ к данным индекса в вашем массиве PHP, вам понадобится console.log (data.data), чтобы получить значение.

+0

Спасибо. Но я должен сказать, что я был достаточно глупым, чтобы забыть протестировать мой код через localhost, поэтому было невозможно работать. Теперь это работает отлично. – Lorthas

+0

Рад, что вы его отсортировали! – nathanlord

Смежные вопросы