Ajax 导致 500 内部服务器错误

Posted

技术标签:

【中文标题】Ajax 导致 500 内部服务器错误【英文标题】:Ajax get caused in 500 Internal Server Error 【发布时间】:2013-08-11 08:52:55 【问题描述】:

我有两个 Ajax 获取请求:

$.get('/tutorials/rate', id: $tutorial->id, function (data) 
    $ratingCount = data;
);

$.get('/tutorials/rateAverage', id: $tutorial->id, function (data) 
    $averageRating = data;
);

在我的控制器中:

public function get_rate()  
    $postId = Input::get('id');
    $ratings = rating::where('tutorial_id', '=', $postId)->get();

    return count($ratings);


public function get_rateAverage()
    $postId = Input::get('id');

在我的路线中:

Route::controller('tutorials', 'TutorialController');

第一个请求就像一个魅力,第二个给我一个 500 错误...

【问题讨论】:

您查看服务器日志了吗?它应该告诉你发生了什么。 您是否应该在第二个请求中返回某些内容? 是的,我想退货,但这不是我得到 500 的原因 服务器给我 "error":"type":"Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException","message":"","file":"\ /Volumes\/Data\/Users\/Christian\/Downloads\/www-backup\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Controllers\/Controller.php","line" :290 【参考方案1】:

在第二次获取请求时,尝试

$.get('/tutorials/rate-average', id: $tutorial->id, function (data) 
    $averageRating = data;
);

你的函数名应该是getRate()getRateAverage()

这正是 Laravel 对命名约定的期望。请看http://laravel.com/docs/controllers#resource-controllers

【讨论】:

这很完美...... THX!但是为什么第一个工作?! 如果getRate() 不存在,Laravel 似乎会响应get_rate()。连字符符号是导致第二种方法中断的原因。

以上是关于Ajax 导致 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥从 ajax 调用 web 服务会引发内部服务器 500 错误?

内部服务器错误 500 Laravel 5.4 AJAX

Laravel 5.7 ajax 请求 500(内部服务器错误)

如何修复“500 内部服务器错误”以响应 ajax 调用

Laravel 5:Ajax Post 500(内部服务器错误)错误

Laravel 图片上传使用 ajax 500 内部服务器错误