Проблема с $ .getJSON в IE - PullRequest
       2

Проблема с $ .getJSON в IE

1 голос
/ 22 августа 2011

У меня есть приложение, вызывающее функцию jquery, например:

$.getJSON('test.php',{dest:2},function(data){
   alert(data);
});

Ну, test.php выглядит так:

<?php echo json_encode('Test'); ?>

В FF возвращает предупреждение с «Test», но в IE возвращает предупреждение без чего-либо.

У кого-нибудь есть идеи?

Ответы [ 4 ]

2 голосов
/ 23 августа 2011

решено, следуйте тому, что я сделал:

заменяет вызов

    $.getJSON('test.php',{dest:2},function(data){
   alert(data);
});

для этого

   $.ajax({
   type: "get",
   url: "test.php",
   data: "dest=2",
   cache:false,
   dataType:'json',
   success: function(data){
     alert(data)
   }
 });

, как это работает в IE и FF

2 голосов
/ 22 августа 2011

В качестве заголовка вам не хватает application-type application / json.

Добавьте это перед эхо: header('Content-type: application/json');

2 голосов
/ 22 августа 2011

Документ JSON должен состоять из массива или объекта.

Если вы дадите json_encode строку, то PHP выведет строку, которая не является допустимым документом JSON.

Возможно, вы столкнулись с различиями в возможностях различных анализаторов JSONиспользуется в разных браузерах для восстановления после ошибок.

2 голосов
/ 22 августа 2011

Добавьте MIME-тип к вашим заголовкам php.IE не получает его автоматически.

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