0

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 および 9 では Empty を返しますが、IE10 および他のすべてのブラウザでは機能します

関連する可能性のあるすべての投稿を読んで試しましたが、なぜこれがこれらの2つのブラウザーでのみ爆撃するのか、何を確認すればよいのか理解できません

ティア!

4

1 に答える 1

0

dataType次のようなajax 呼び出しを実行してみてください。

dataType: 'json'

そのため、期待しているデータの種類がわかります。content typeまた、サーバーからの応答ヘッダーでを返す必要がありますapplication/json-json_encodeメソッドはオブジェクトをJSONに変換するだけですが、明らかに正しいヘッダーを適用しません(ref php.net )

以下を追加します。

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

明示的に宣言されている場合、ハンドラーを呼び出す前に変換するdataTypeため、の必要はありません。したがって、パラメーターは期待する JSON になります:)jQuery.ParseJSONsuccessr

また、関数呼び出しは呼び出しのheader前に行う必要があるというメモ(OPが見つけたように)json_encode

于 2013-09-26T06:46:58.927 に答える