Почему возвращаемые данные JSON имеют другой формат данных? - PullRequest
0 голосов
/ 23 июля 2010

В следующих двух разных формах оба php-скрипта на стороне сервера возвращают что-то вроде этого json_encode ($ results);

Поэтому я предполагаю, что на стороне клиента должны быть получены данные JSON.

Однакопочему в случае I возвращаемые данные являются текстовыми, и нам нужно выполнить некоторое преобразование, прежде чем мы сможем получить доступ к данным JSON.

, в случае II возвращенные данные - это объект, который мы можем использовать напрямую.

Почему случай I и случай II различаются?

Спасибо

////////////////////////////////////////////////
Case I:
$(document).ready(function() { 

   var options = { 
        success:  processJson,
        dataType: 'json'
    }; 

    // bind form using 'ajaxForm' 
    $('#countyForm').ajaxForm(options); 
});

function processJson(data) {
  // here data is an object
}


//////////////////////////////////////////////////
Case II:
              $(document).ready(function() {
                  $('#the_button').click(function() {
                       $.ajax({
                       type: "GET",
                       url: "chicken_answer.php",
                       data: "first=Sean&last=Rowe",
                       success: function(msg){
                       // msg is not an object, we have to convert it to an object by calling eval
                       jsonObj = eval('(' + msg + ')'); // we're getting back JSON text, so we have to convert it to a JavaScript object.

                       $('#the_answer').html(jsonObj.theAnswer);
                     }
                       });
                  });
              });

1 Ответ

0 голосов
/ 23 июля 2010

Не видя, как данные упакованы на сервере, сказать сложно.Полагаю, можно попытаться указать опцию dataType: 'json' в вашем вызове Case II $ .ajax ().Что происходит, когда вы делаете это?Если вы не укажете это, jQuery.ajax угадывает тип возвращаемого значения.

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