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');}为IE 8&返回Empty 9,但适用于IE10&所有其他浏览器
我读过&尝试过这里的每一篇文章,我发现这可能是相关的,无法理解为什么这只是对这两种浏览器的炸弹,以及要检查的内容
TIA!
答案 0 :(得分:0)
尝试给你ajax调用dataType
,如下所示:
dataType: 'json'
因此它知道您期望的数据类型。
您还应该从服务器返回响应标头中的content type
application/json
- 您的json_encode
方法只是将您的对象转换为JSON,但显然不会应用正确的标头(ref {{ 3}})
您需要添加:
header('Content-Type: application/json;charset=utf-8');
显式声明dataType
后,jQuery.ParseJSON
不应该有任何需要,因为它会在调用success
处理程序之前对其进行转换,因此参数{{1}将是你期待的JSON:)
同样只是一个注释(如OP发现的那样)r
函数调用需要在header
调用之前