0

JQuery: http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js& IE8, 9 - нет ответа JQuery Ajax версии объекта

$.ajax({ 
     url: CI_ROOT + current_page + '/get_results' , 
     type: 'post', 
     data: { 'primary_key': primary_key, 'search_category':search_category, 'sub_category': sub_category ,'search_page':search_page, 'search_order': search_order, 'project_type': project_type}, 
     beforeSend: function(){ 
      $('.browse-list').html(spinner); 
      $('.page-number-nav').html(''); 
     },   
     success: function(r){ 
      var response_obj = jQuery.parseJSON(r.responseText); 

      $('.browse-list').html(''); 

      if (response_obj.status == 'SUCCESS') 
      {    
       $('#sort_menu').hide(); 
       $('#sort_type').hide(); 

       if ((response_obj.results != 'No results') && (search_category != 'group') && (search_category == 'title' || (primary_key > 0))) 
       { 
        $('#sort_menu').show(); 
        $('#sort_type').show();    
       } 

       $('.browse-list').html(response_obj.results); 
       $('.page-number-nav').html(response_obj.pagination); 
      } 
     } 
    }); 

, если (== r.responseText не определено) {Alert ('пустой');} возвращает пустой для IE 8 & 9, но работы для IE10 & всех других браузеров

Я прочитал & пытался каждый пост здесь я могу найти, что может иметь отношение, не может понять, почему это только бомбы для этих двух браузеров, и что для проверки

ТИА!

+0

типа Какого содержания вы посылаете с сервера? –

+0

json, через: echo json_encode ($ retval); вернуть; действителен для всех остальных – jmadsen

ответ

0

Try дает вам АЯКС называть dataType как так:

dataType: 'json' 

поэтому он знает, какие данные вы ожидаете. Вы также должны вернуть content type в заголовке ответа от сервера application/json - ваш метод json_encode просто преобразует объект в JSON, но, видимо, не применяет правильные заголовки (см php.net)

Вы хотите добавить:

header('Content-Type: application/json;charset=utf-8'); 

с dataType объявлена ​​явно не должно быть никакой необходимости для jQuery.ParseJSON, так как она будет преобразовать его, прежде чем он вызывает success обработчик, поэтому параметр r будет JSON вы ожидаете :)

Также просто примечание (как OP выяснил), что вызов функцию header должен быть перед вашим json_encode вызовом

+0

Я пробовал варианты на них, но даст вам еще один снимок, чтобы сообщить вам – jmadsen

+0

содержит ли параметр 'r' любую информацию? это просто ответ, который не проходит? –

+0

внесение изменений и добавление: alert (Object.keys (r)); Я вижу, что у него есть свойства обычного объекта ответа, но не responseText или что-то еще, что я отправляю обратно – jmadsen

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