繁体   English   中英

CodeIgniter + AJAX内部错误500

[英]CodeIgniter + AJAX Internal Error 500

我正在尝试对我的Notification控制器中的一个方法进行ajax调用。

我的方法是:

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请求。

事实是,当我向ajax中添加一些数据,例如:data:“ nome = 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

不确定如何通过CRSF保护来管理服务器,但是如果需要在域之间共享内容,则需要使用CORS 只需在Web服务器上定义Origin策略,您就可以开始了。

您是在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);
      }
    });

问题出在跨站点请求伪造 ,禁用它可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM