【问题标题】:jquery post internal server errorjquery发布内部服务器错误
【发布时间】:2015-03-03 00:21:11
【问题描述】:
    $('.active-teacher').click(function() {
       $.post('<?php echo base_url('authsm8csk/change_teacher'); ?>/'+this.id);
    });

当我通过在网络浏览器中键入执行此 url 时,控制器中的代码正在运行,所以我认为控制器中的代码没有问题。但是当我通过单击“active-teacher”类的元素运行时。内部服务器错误 500。请帮助我。

在 chrome 开发控制台中显示这样的错误,抱歉我无法发布图片

POST http://domain.com/sman8kab/authsm8csk/change_teacher/3500(内部服务器错误)

【问题讨论】:

  • 如果您收到 500 错误,则问题出在服务器端。
  • 你能展示你的 PHP 代码吗?
  • 公共函数 change_teacher($id) { $query= $this->m_teacher->get_id($id); $row=$query->row(); if($row->status==1) { $data=array('status'=>0); } else { $data=array('status'=>1); } $this->m_teacher->update($id,$data); }
  • 但是当我通过在浏览器中输入来尝试 url 时,它运行良好

标签: jquery ajax codeigniter post


【解决方案1】:

最后我修复了这个问题,内部服务器错误,因为 csrf 保护不允许 post 操作,所以我将 csrf 令牌添加到 post 数据,这是我更新的代码:

$('.active-teacher').click(function() {
    var id=this.id;
    $.ajax({
        type: "POST",
        url: "<?php echo base_url('authsm8csk/change_teacher'); ?>/"+id,
        data: {"<?php echo $this->security->get_csrf_token_name(); ?>":"<?php echo $this->security->get_csrf_hash(); ?>"}
    });
});

【讨论】:

    【解决方案2】:

    您的 PHP 语法错误。您提前关闭了 PHP 括号,从而导致语法错误。正确的应该是

    $.post("&lt;?php echo base_url('authsm8csk/change_teacher'); ?&gt;/"+this.id);

    【讨论】:

    • 我已经尝试过这种方式,但显示相同的错误。感谢您的关注。
    • 试试这个$.post("&lt;?php echo base_url('authsm8csk/change_teacher/'); ?&gt;"+this.id)
    • 如果我输入这样的代码,这样的网址localhost:8080/sman8kab/authsm8csk/change_teacher3 也总是错误。但感谢您的关注
    猜你喜欢
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多