1

JS:

$(function() {
    load_custom_topics()
//    load_main()
});

function load_custom_topics(){
    $.ajax({
    type: "POST",
    async: false,
    url: 'http://rickymason.net/thebump/index.php/ajax/load_custom_topics',
    dataType: 'json', 
    data: { },
        success: function(page){
            alert(page);
        }
    });
    event.preventDefault()
}

load_custom_topics

public function load_custom_topics()
{
    $check = $this->page_model->check_active_topic();
    if ($check == FALSE) 
    {
            $page['content'] = 'TEST equals FALSE'; 
    } else {
            $page['content'] = 'TRUE'; 
    }
    echo json_encode($page);
}

index.php/ajax/load_custom_topics ページに移動すると、次のように返されます。

{"content":"TEST equals FALSE"}

アラートが発生していません。理由はありますか?

4

1 に答える 1

2

実際、コントローラーへのリクエストを調べたところ、ajax 呼び出しが期待する適切なヘッダー (text/json) を設定していないことがわかりました。

codeigniter のOutputクラスを参照してください。

使用する

$this->output->set_content_type('application/json')->set_output(json_encode($page));

それ以外の

echo json_encode($page);

トリックを行う必要があります。

于 2012-09-13T15:55:25.500 に答える