@LP-DIMAN

Почему Ajax не работает в Laravel?

Есть файл с js:
//
// Точка входа.
//

$(document).ready(function(){


$.ajaxSetup({
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
  });
	
	// При нажатии на кнопку id=send
	$('.remember').click(function(){
		 var id_advert = $(this).val();
	$(this).html("<button type='checkbox' disabled='disabled'   name='remember' class='remember'>  Запомнили </button>");
	$.get('true_advert',{remember:id_advert});

 	

	});
	/*$('#send').click(function(){
		 var params = $('#register').serialize();
	
	$.post('auth/register',params);

 	

	});*/


				
$('.comment').click(function(){
		
	var id_comment = $(this).val();

	console.log(id_comment);
	//$(this).html("<textarea rows=10 cols=70 name='add_comment' class='add_comment' maxlengh='256' autofocus> </textarea><br><button type='submit' name='add' class='add'> Добавить сообщение</button>");
	$.get('edit_advert',{comment:id_comment},function(data,textStatus,jqXHR)
		{
			console.log(data);
			console.log(textStatus);
			console.log(jqXHR);
			
		});
	

});
	
	


 	

	});

Так вот, первый ajax-запрос, где класс remember, работает. Все остальное - нет. Не пойму в чем проблема, токены прописал. Написал просто тестовый ajax:
$('.comment').click(function(){
		
	var id_comment = $(this).val();

	console.log(id_comment);
	//$(this).html("<textarea rows=10 cols=70 name='add_comment' class='add_comment' maxlengh='256' autofocus> </textarea><br><button type='submit' name='add' class='add'> Добавить сообщение</button>");
	$.get('edit_advert',{comment:id_comment},function(data,textStatus,jqXHR)
		{
			console.log(data);
			console.log(textStatus);
			console.log(jqXHR);
			
		});
	

});

Контроллер:
public function id_advert(Request $request)
	{
		$data['id_advert'] = $request->input('comment');

		return view('aaa',$data);
		//Adverts::add_comment($comment,$id_client,$id_advert);
	

		
	}

Роут
Route::get('edit_advert','ClientController@id_advert');

Вьюха:
<button type="submit" value="{{$advert->id_realty}}" name="comment" class="comment"> Добавить комментарий</button>

Просто написал для примера, чтобы хоть на вьюху эту перебрасывало
Так вот, консолька выдает вполне правильный ответ:
1
script.js:42 привет
script.js:43 success
script.js:44 Object {readyState: 4, responseText: "привет", status: 200, statusText: "OK"}
Как и сервер:
привет
Так почему же при правильных ответах не подключилась вьюха? Мучаюсь уже с этим ajaxом который день
Во вьюхах также прописал:
<meta name="csrf-token" value="{{ csrf_token() }}">
 <input type="hidden" id="token" value="{{ csrf_token() }}">

У меня этот файл со скриптами используют разные контроллеры. Может из-за этого ошибка? Хотя было бы не разумно каждый ajax-запрос прописывать в отдельном файле
  • Вопрос задан
  • 841 просмотр
Пригласить эксперта
Ответы на вопрос 1
@mustafo
Может у вас сама кнопка .comment рендерится аяксом? То есть в момент "ready" этой кнопки нет.

В таком случае событие click не срабатывает, т.к. нужно писать вместо
$('.comment').click(function () { ... });
так:
$('body').on('click', '.comment', function () { ... });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы