2012-09-13 120 views
1

JS:AJAX腳本笨不會成功返回

$(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"}

警報沒有開火!任何想法爲什麼?

+0

因爲你不在控制器中加載任何視圖,只是echo'ing'$ page'數組 –

+0

hm,我不知道它需要加載視圖...讓我試試看,謝謝。 –

回答

1

實際上,在檢查您的控制器的請求時,我發現您沒有設置ajax調用期望的正確標頭(text/json)。

請參閱codeigniter的Output類。

使用的

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

代替

echo json_encode($page); 

應該做的伎倆。

+0

我添加了一個類似上述海報建議的視圖,並將回顯更改爲您提供的代碼,但仍未收到警報。我應該指出,我看到JS正在運行,並且在ajax函數之前放置警報可以使警報熄滅。 –

+1

擺脫視圖。海事組織你不需要一個。 – Prasanth