2013-11-22 7 views
2

Я пытаюсь настроить ajax для laravel, но это не сработает. У меня есть контроллер для размещения комментариев. Javascript, который блокирует кнопку отправки и отправляет Аякса, который возвращает ошибку 500Ajax для laravel 4

public function postComment() 
{ 
    if (Request::ajax()) 
    { 
     return Response::json(['blah' => 'ohhh']); 
     } 
} 

    $('#submit_comment').click(function (e) 
{ 
    e.preventDefault(); 

    $.ajax({ 
     type : "POST", 
     url : "http://page.dev/posts/comment", 
     data : 
     { 
      comment : $("#comment_area").text() 
     } 
    }); 

}); 

<script type="text/javascript">var comment = "{{URL::action('[email protected]')}}"; </script> 

Что возвращает 500 внутренний сервер ошибка

UPD:

Route::get('posts/{id}', ['as' => 'post', 'uses' => '[email protected]'])->where('id', '\d+'); // Where id == number 
Route::get('category/{id}', ['as' => 'category', 'uses' => '[email protected]'])->where('id', '\d+'); 

РЕШЕНИЕ: I используется в защите конструктора csrf. после того, как я удалил защиту csrf от postComment, она сработала для меня Route :: controller ('posts', 'PostsController');

+1

Ответ вашего 500 сервера, скорее всего, содержит сообщение об ошибке (надеюсь). Вы можете это найти? Должно быть частью ответа. Наконец, можете ли вы сообщить нам, в каких файлах находится этот код? Похоже, вы смешиваете код контроллера с кодом вида в приведенном выше фрагменте кода. – fideloper

ответ

3

Трудно предложить совет, не видя ваш маршрут, контроллер, код обзора аккуратно отделен. Тем не менее, это необходимый минимум для достижения желаемого результата:

В вашем routes.php

Route::post('/comment', function() 
{ 
    return Response::json(['blah' => 'ohhh']); 
}); 

На ваш взгляд:

$.ajax({ 
    type : "POST", 
    url : "comment", 
}); 

если вы получаете 500 ответа, то это вероятно, у вас возникла проблема с вашим маршрутом в контроллер @ postComment.

+0

извините за поздний ответ ... используя простой пример, как вы показали с помощью Route, это сработало ... но когда я пытаюсь подключить его к контроллеру, он показывает мне 500. –

+0

Я понял только, что он работает с Route: : post ('posts/comment', function() {}) ;, но он не будет работать, если я добавлю ['uses' => 'PostsController @ postComment'] –

+0

Я нашел свою ошибку –

Смежные вопросы