【问题标题】:Ajax get caused in 500 Internal Server ErrorAjax 导致 500 内部服务器错误
【发布时间】: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}}

标签: javascript jquery laravel laravel-4


【解决方案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()。连字符符号是导致第二种方法中断的原因。
猜你喜欢
  • 2010-11-23
  • 2012-03-29
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 2011-01-22
相关资源
最近更新 更多