2016-06-23 6 views
0

Я пытаюсь научиться использовать AJAX с laravel, мои знания AJAX практически равны нулю. Последние несколько дней я пытался это решить. Но я не могу заставить его работать ...laravel AJAX post

В основном, когда пользователь нажимает подобную кнопку сообщения, я хочу отправить этот запрос моему LikeController. LikeController работает так, что это не может быть проблемой, кажется, что AJAX не передает данные контроллеру. Может кто-то указать, что я делаю неправильно?

Мой маршрут:

Route::post('posts/like', [ 
    'as' => 'posts.like', 
    'uses' => '[email protected]' 
]); 

Мой контроллер:

public function likePost(Request $request) 
    { 
     // Validation 
     $this->handleLike('App\Post', $request['postId']); 
     return response()->json(['msg' => 'success'], 200); 
    } 

    public function handleLike($type, $postId) 
    { 
     $existing_like = Like::withTrashed()->whereLikeableType($type)->whereLikeableId($postId)->whereUserId(Auth::id())->first(); 

     if (is_null($existing_like)) { 
      Like::create([ 
       'user_id'  => Auth::id(), 
       'likeable_id' => $postId, 
       'likeable_type' => $type, 
      ]); 
     } else { 
      if (is_null($existing_like->deleted_at)) { 
       $existing_like->delete(); 
      } else { 
       $existing_like->restore(); 
      } 
     } 
    } 

И JS:

$('.like').on('click', function(event) { 
    event.preventDefault(); 

    postId = event.target.dataset['postid']; 

    console.log(postId) 
    console.log(token) 

    $.ajax({ 
     method: 'POST', 
     url: urlLike, // Gets defined in the view 
     data: {postId: postId, _token: token} 
    }).done(function(msg) { 
      console.log(msg); // never even reached this stage... 
    }); 
}); 
+0

Проверьте вкладку сети в вашем браузеры для разработчиков-консоли. – tkausl

+0

Спасибо! Лучший совет: –

ответ

0

Какой выход вы получаете в консоли? ошибка 500?

Чтобы ajax работал, вам необходимо отправить токен csrf с вашим запросом.

https://laravel.com/docs/master/routing#csrf-x-csrf-token

Чтобы правильно запрос отладки Ajax я рекомендую вам использовать мастеровой хвост, это поможет вам следить за сообщения об ошибках при работе с Ajax.

https://github.com/spatie/laravel-tail

+0

Спасибо за отзыв, это была ошибка 500, полученная отсутствующим) в контроллере, я нашел это, используя вкладку сети, как указано выше –

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