Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.06.2015 23:49:13

Ошибка при ajax запросе в форме обратной связи

Добрый день!
Есть сайт одностраничник. В низу форма обратной связи. Задача - сделать ajax отправку е-майл. Проблема - выдает ошибку при нажатии кнопки "отправить" MethodNotAllowedHttpException. Читал данную тему https://laravel.ru/forum/viewtopic.php?id=868. У автора в начале была та же самая ошибка, но в теме не понял как проблема решилась. Искал информацию по данной ошибке, нашел несколько статей, где написано, что нужно делать роут с именем. Сделал роут с именем:

Route::post('submit', array('as' =>'submit', function(){

	$validator = Validator::make(
			array(
				'name' => Input::get('name')
			),
			array(
				'name' => 'required|max:10'
			)
		);
	if($validator->fails()) {
		return Response::json( 
			array(
				'success'=> false , 
				'errors'=>$validator->errors()->toArray()
				)
			);

	}

	return Response::json(array('success'=>true));

Форма главной странице

{{ Form::open(array('route' => 'submit'))}}
				<input type="text" name="name" id="name">
				<button type="submit">Submit</button>
			{{ Form::close() }}

Скрипт

<script>
	      	$(document).ready(function(){
	      		$('form').submit(function(e){
	      			e.preventDefault();

	      			var formData = new FormData();

	      			formData.append('name', $('#name').val());
	      			$.ajax({
	      				url: 'submit',
	      				method: 'post',
	      				processData: false,
	      				contentType: false,
	      				cache: false,
	      				dataType: 'json',
	      				data: formData,
	      				success: function(data){
	      					console.log(data);
	      				},
	      				error: function(){}
	      			});
	      		});
	      	});
      	</script>

Ошибка исчезла но перекидывает на пустую страницу с адресом http://example.com/submit
Вопрос, как правильно сделать, чтоб не перекидывал на другую страницу, а оставаться на текущей, в нужной секции. В статьях, которые были найдены по этому вопросу,

Не в сети

#2 18.06.2015 00:43:47

Re: Ошибка при ajax запросе в форме обратной связи

Тему прошу удалить. Разобрался.

Не в сети

#3 26.06.2015 20:04:57

Re: Ошибка при ajax запросе в форме обратной связи

Коль разобрался - просвети нас!)

Не в сети

#4 09.07.2015 21:40:47

Re: Ошибка при ajax запросе в форме обратной связи

dima9595 пишет:

Коль разобрался - просвети нас!)

На самом деле, даже стыдно сказать в чем была проблема smile А именно подключение библиотеки JQuery и написание скрипта. Я ее подключил в самый низ, а скрипт писал получается выше (просто в теле шаблона). При этом все скрипты js вынесены в отдельный файл, который как и положено подключен ниже библиотеки. Таким образом, получился вот такой компот. Не понимал долго, что происходит. smile

Но теперь у меня новый вопрос есть smile Пока пытаюсь разобраться сам, если кратко суть проблемы - сообщения валидации не подтягиваются из папок. А подтягиваются из папки языка, который установлен в app.php. При этом другие сообщения (не относящиеся к валидации) в шаблоне через языковые переменные подтягиваются как положено, каждое из своей папки.

Не в сети

#5 10.06.2016 00:29:27

Re: Ошибка при ajax запросе в форме обратной связи

Спасибо тебе добрый человек, сэкономил мне кучу нервов!!!

Не в сети

Подвал раздела