2012-04-12 129 views
1

我想在我的Notification控制器中對一個方法進行ajax調用。CodeIgniter + AJAX內部錯誤500

我的方法是:

public function testeAjax() 
{ 
    if($this->chamadaAjax()) 
     echo 'Ajax'; 
    else 
     echo 'Form'; 
} 

$this->chamadaAjax()簡單地執行和$this->input->is_ajax_request()

,這是我的Ajax調用:

$.ajax({ 
     type: "POST", 
     url: '<?php echo base_url(); ?>/office/notificacao/testeAjax', 
     success: function(html) { 
     alert(html); 
     } 
    }); 

我有兩個按鈕,一個用於表格形式提交和另一個阿賈克斯請求。

的事情是,當我的一些數據添加到AJAX,如:數據:「諾姆= Gerep」,並調用它,我收到一個Internal Erro 500

當我不發送任何數據,它的工作原理,它會在我提交時返回表格,當我調用ajax請求時返回ajax

任何想法?

編輯 使用Firebug這裏是我得到:

f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4 
f.extend.ajaxjquery-1.7.1.min.js:4 
testenotificacao:140 
(anonymous function)notificacao:113 
onclick 
+0

你檢查了你的服務器日誌嗎?如果你有權訪問它們,查明真實原因最安全的方法就是檢查它們 - HTTP/1.1 500記錄的原因是什麼。 – brezanac 2012-04-12 20:55:10

+0

我在哪裏可以找到這些日誌? – Gerep 2012-04-12 22:48:20

+0

只有使用專用或VPS機器時,才能訪問錯誤日誌。在共享虛擬主機服務器上,錯誤日誌通常不可用(只是訪問日誌)。在哪裏尋找它取決於運行Web服務器的發行版(OS)。 RedHat在'/ etc/httpd/logs/error_log'中派生它。 – brezanac 2012-04-12 23:36:34

回答

0

你傳遞數據的URL或定義對象?即:數據傳遞(尤其是POST)應該是這個樣子:

$.ajax({ 
     type: "POST", 
     url: '<?php echo base_url(); ?>/office/notificacao/testeAjax', 
     data: { nome: "Gerep" }, 
     success: function(html) { 
     alert(html); 
     } 
    }); 

,而不是像這樣:

$.ajax({ 
     type: "POST", 
     url: '<?php echo base_url(); ?>/office/notificacao/testeAjax?nome=Gerep', 
     success: function(html) { 
     alert(html); 
     } 
    }); 
+0

我我試過了,同樣的錯誤 – Gerep 2012-04-12 20:51:03

1

不知道如何管理一個CRSF保護,但萬一打壞服務器您需要共享域名之間的內容CORS是您需要的解決方案。只需在您的Web服務器上定義Origin策略,您就可以輕鬆前往。