2015-02-25 5 views
1

Я пытаюсь отобразить json-канал, который я создал на другой странице моего сайта, используя jQuery AJAX. По большей части, я отлично работаю, используя следующий код, за исключением iOS Safari иногда не работает (около 1 из 10). Когда я говорю, что это не работает, к документу ничего не добавляется, и мой элемент «.items» остается пустым.AJAX получить запрос иногда терпит неудачу на iOS Safari

Вот мой JQuery скрипт, который я бегу на окна нагрузки:

$.ajax({ 
    type: "GET", 
    url : '/json', 
    success: function (data) { 
     var json = JSON.parse(data.replace(/"/g, '"')); 
     $.each(json.data, function (index, element) { 
      $(".items").append("<p>" + json.data[index].Title + "</p>"); 
     }); 
    } 
}); 

Вот корм JSON, который, как представляется, действительно, но при добавлении DATATYPE: «JSON» в мой запрос AJAX, ничего возвращается:

{ 
    "data": 
    { 
     "1": { 
      "Title": "Page 1", 
      "Url": "/page-1" 
     }, 

     "2": { 
      "Title": "Page 2", 
      "Url": "/page-2" 
     }, 

     "3": { 
      "Title": "Page 3", 
      "Url": "/page-3" 
     } 
    } 
} 

Жутко, никаких сообщений об ошибках не всегда отображается, если это не работает, так что я понятия не имею, что фактическая причина. Мои подозрения в том, что JSON не отформатирован должным образом, или JSON не получает разбор по какой-либо причине. В настольных браузерах он всегда работает, поэтому это приводит меня к мысли, что это не причины, и возможно, это просто ошибка iOS.

Может ли кто-нибудь помочь мне решить эту проблему? Есть ли способ проверить, правильно ли обработан мой json?

+1

Возможно, у ios закончилась память? Вы освобождаете память, которую занимали объекты каждый раз, когда вы ее запрашиваете? Меня ничто не удивляет, и это первое, о чем я бы подумал. – Tschallacka

+0

Эй, Майкл, спасибо за ответ. Я не делаю этого на самом деле, поэтому сейчас я буду изучать это, и, надеюсь, он исправит проблему. – mmmoustache

+0

Особо убедитесь, что объекты закрытия очищены. – Tschallacka

ответ

0

У меня была такая же проблема, когда iOS Safari возвращался «» даже для статического действительного файла JSON ... поэтому я искал что-то похожее между нашим кодом, и поскольку мы оба используем «GET», я решил попробуйте POST, так почему бы не ... и конечно же, POST всегда возвращают мой JSON через AJAX, где GET не сделал ...

Это определенно что-то в IOS сафари не обрабатывает это правильно, но переход на POST работал для меня ... на всякий случай, когда кто-то сталкивается с теми же проблемами.

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