JQuery: JSON перестал работать - PullRequest
       3

JQuery: JSON перестал работать

0 голосов
/ 20 февраля 2011

Код ниже просто перестал работать, хотя я даже не трогал эту часть файла с тех пор, как он работал в последний раз.

$.post(PATH_PRODUCTS_AJAX_URL, att, function(data) {
  if(data.proper)
  {
    current_step = data.step;
    $('#product_container').append('<div class="product_content">' + data.content + '</div>');
    $('#product_container .product_content:last').animate({'left' : '-=460px'}, 200, 'swing');
  }
  else
  {
    alert('Not proper.');
  }
}, 'json');

Мой процесс отладки выглядит следующим образом:

Я проверил URL и входные данные - они оба в порядке. Я использую переменную data.proper , чтобы убедиться, что данные в порядке; если данные не обрабатываются должным образом, я должен получить окно с предупреждением «Неправильно» - но теперь я не получаю. Я также пытался использовать случайное окно предупреждения вне оператора if, но ничего не происходит вообще.

Но если я удаляю параметр JSON, я получаю поле «Не правильно». Я также мог видеть, что выходные данные все в порядке, предупреждая переменную data .

Я проверил включенные файлы, и все они в кодировке UTF-8.

Я действительно понятия не имею, что мне делать дальше. Любая помощь приветствуется.

Редактировать: (пример данных)

products.php:

$return['proper'] = true;
$return['step'] = 1;
$return['content'] = 'Hello';

$json = json_encode($return);
echo $json;

Ответ (обратите внимание, что он возвращается только тогда, когда исключен параметр JSON):

{"proper":true,"step":1,"content":"Hello"}

1 Ответ

0 голосов
/ 20 февраля 2011

Не могли бы вы попробовать перейти от сокращения .post() к вызову .ajax(), чтобы дать вам доступ для отображения ошибки:

$.ajax({
    type: "POST",
    url: PATH_PRODUCTS_AJAX_URL,
    data: att,            
    dataType: "json",
    success: function(data) {
        if (data.proper) {
            current_step = data.step;
            $('#product_container').append('<div class="product_content">' + data.content + '</div>');
            $('#product_container .product_content:last').animate({'left': '-=460px'}, 200, 'swing');
        }
        else {
            alert('Not proper.');
        }
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("Response text: "+XMLHttpRequest.responseText);
        alert("Status returned: "+textStatus);
        alert("Error thrown: "+errorThrown);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...