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 错误?
Laravel 5.7 ajax 请求 500(内部服务器错误)