【问题标题】:AJAX error status code 500 internal server errorAJAX 错误状态码 500 内部服务器错误
【发布时间】:2015-03-25 10:47:12
【问题描述】:

我有这个代码:

<a href="#">
    <i class="icon-heart" id="icon_heart" value="20"></i>
</a>
var some_value = $("#icon_heart").attr("value"); 

$('[id=id_heart]').click(function() {
    $.ajax({
        url: "<?=base_url(); ?>controller/save",
        type: "post",
        data: { some_value: some_value },
        success: function(dat){
            alert(dat);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        }
    });
});

PHP:

function save()
{
    $post = $this->input->post();
    $some_value = $post['some_value'];

    $dtl['some_field']  = $some_value;
    $dtl['date_insert'] = date('Y-m-d H:m:s');
    $this->db->insert('resep_like',array_filter($dtl));

    $this->db->set('is_like', 'is_like+1',FALSE);
    $this->db->where('some_field', $some_value);
    $this->db->update('some_table');

    echo "success";
}

插入和更新查询成功,但 AJAX 响应返回 error: status code 500 internal server error。为什么会这样?成功但是结果是错误的,并且没有显示来自PHP的echo。如果响应成功但 AJAX response 显示错误,我该如何处理

【问题讨论】:

  • A 500 错误意味着错误与您的 PHP 代码有关。检查日志。
  • 检查您的url 是否获得controller path
  • 使用console.log() 而不是alert()。您将获得更多信息。
  • @RoryMcCrossan 抱歉,我如何检查 php 中的日志?你能提供给我吗?
  • @SyarifHidayatullahLubis 是否在配置中启用CSRF 保护?

标签: javascript php jquery ajax codeigniter


【解决方案1】:

不知道这是否是最佳答案..

我只是通过将url: &lt;?=base_url();?&gt;controller/save更改为url: &lt;?=base_url();?&gt;save.php来解决这个问题

我将我的 ajax 的 url 指向我放置在文档根目录中的单个 php 文件,并且不再使用 ci 控制器进行插入和更新查询,然后瞧它的工作

如果有更好的方法,请告诉我。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2020-03-11
    • 2021-10-28
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多