Версия jquery: http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
$.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);
}
}
});
if (r.responseText == undefined) {alert ('Empty');} возвращает Empty для IE 8 и 9, но работает для IE10 и всех других браузеров
Я прочитал и пробовал все сообщения здесь, я могу найти, что может быть уместным, не могу понять, почему это только бомбы для этих двух браузеров, и что проверить
ТИА!
Попробуйте дать вам ajax вызов dataType
например:
dataType: 'json'
поэтому он знает, какие данные вы ожидаете. Вы также должны вернуть content type
в заголовке ответа с сервера как application/json
- ваш метод json_encode
просто преобразует ваш объект в JSON, но, по-видимому, не применяет правильные заголовки (ref php.net)
Вы хотите добавить:
header('Content-Type: application/json;charset=utf-8');
С dataType
объявленным dataType
не должно быть необходимости в jQuery.ParseJSON
, поскольку он будет преобразовывать его, прежде чем он вызовет обработчик success
, поэтому параметр r
будет JSON, который вы ожидаете :)
Также просто примечание (как выяснилось OP), что вызов функции header
должен быть перед вызовом json_encode
r
содержит какую-либо информацию? это просто ответный текст не проходит?