@GaserV

Почему не отправляется форма?

Подскажите. Как правильно отправлять и обрабатывать форму на laravel 5? Уже не первый день не мог ничего сделать. То одно, то другое, то вобще ошибок нету. Всю голову сломал уже. В данный момент возвращает ошибку: "TokenMismatchException in:". Отправляются данные вида "FormData {}".

<div class="modal-body">
				                <form id="form" enctype="multipart/form-data" method="post">
				                	<input type="text" class="form-control" name="title" placeholder="Название"><br>
				                	<textarea class="form-control" rows="7" name="message" placeholder="Текст"></textarea><br>
				                	<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
				                	<!-- <label for="inputFile">Картинка: </label>
				                	<input type="file" id="inputFile" ng-model="newData.image"><br> -->
				                	<input type="submit" class="btn btn-primary" value="Добавить">
				                </form>
				            </div>


$('#form').on('submit', function(e){

		e.preventDefault();
		var form = $(this);
		var formData = new FormData(form);
		 
		console.log(formData);
		$.ajax({
		  url: '/newrecord',
		  type: 'post',
		  contentType: false,
		  processData: false, 
		  data: formData,
		  dataType: 'json',
		  success: function(data){
		    if (data.fail) {
			    $.each(data.errors, function(index, error) {
				    alert(error);
				    if (error = 'User not found') {

				    	$('html,body').animate({
				     		scrollTop: $('#reg-form').offset().top-200
				    	},1000,'easeInOutExpo');

				    };
				}); 
		    };
		    if (data.success) {
		    	location.reload('/');
		    }

		  }
		});

		

	});

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class MainController extends Controller
{
    
	public function newrecord(Request $request)
    {

        $data = $request->get('form-data');
        return $data;

    }

}
  • Вопрос задан
  • 635 просмотров
Пригласить эксперта
Ответы на вопрос 1
ubukulov
@ubukulov
Веб-разработчик
1) у вас в форме должно отправиться _token

<form action="javascript:void(null)" id="form" onsubmit="followPrice(this)" enctype="multipart/form-data" method="post">
                                {{ csrf_field() }}
                        	<input type="text" class="form-control" name="title" placeholder="Название"><br>
                        	<textarea class="form-control" rows="7" name="message" placeholder="Текст"></textarea><br>
                        	<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
                        	<!-- <label for="inputFile">Картинка: </label>
                        	<input type="file" id="inputFile" ng-model="newData.image"><br> -->
                        	<input type="submit" class="btn btn-primary" value="Добавить">
                        </form>

потом в JS получаешь форму так:

<code lang="javascript">
function followPrice(form) {

    var data = $(form).serialize();

    $(form).find(".errors").html("");

    $.ajax({
        method: "POST",
        url: "/api/ajax/follow-price",
        data: data,
</code>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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