#javascript #php #laravel
Вопрос:
Я пытаюсь, когда клиент хочет загрузить изображение или логотип, я хочу, чтобы это изображение отображалось перед ним с помощью элемента span, чтобы он мог убедиться, что загрузил правильное изображение в систему, но когда я нажимаю на кнопку загрузить, я получил СООБЩЕНИЕ, метод не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD. ошибка
вот мой код в card_view_blade
lt;div class="form-group row"gt; lt;div class="col-md-8"gt; lt;form method="post" id="upload-image-form" enctype="multipart/form-data"gt; @csrf lt;div class="input-group" data-type="image"gt; lt;input type="file" name="file" class="form-control" id="image-input"gt; lt;button type="submit" class="btn btn-success"gt;Uploadlt;/buttongt; lt;/divgt; lt;/formgt; lt;/divgt; lt;div class="col-md-4"gt; lt;div class="alert" id="message" style="display: none"gt;lt;/divgt; lt;span id="uploaded_image"gt;lt;/spangt; lt;/divgt; lt;/divgt;
вот код js
@section('script') lt;script type="text/javascript"gt; $(function(){ $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $('#upload-image-form').submit(function(e) { e.preventDefault(); let formData = new FormData(this); $('#message').hide().html(''); $.ajax({ type:'POST', url: `/upload-images`, data: formData, dataType:'JSON', contentType: false, cache: false, processData: false, success: (data) =gt; { console.log("success-",data); if (data) { this.reset(); $('#message').show().html(data.message); $('#message').addClass(data.class_name); $('#uploaded_image').html(data.uploaded_image); } setTimeout(function(){ $('#message').hide().html(''); }, 3000); }, error: function(data){ console.log("error-",data); // $('#image-input-error').text(data.responseJSON.errors.file); $('#message').show().html('Something went wrong'); $('#message').addClass('danger'); $('#uploaded_image').html(''); setTimeout(function(){ $('#message').hide().html(''); }, 3000); } }); }); }) lt;/scriptgt; @endsection
код маршрута
Route::post('/upload-images', 'CheckoutController@storeImage' )-gt;name('images.store');
Комментарии:
1. Эта страница с ошибкой показывает, что вы действительно используете POST, поэтому ваш код blade amp; js не имеет значения. В консоли попробуйте
php artisan route:list
убедиться, что ваша конечная точка post указана в списке, и выше нет ничего, что могло бы столкнуться с ней2. спасибо за помощь, это работает
Ответ №1:
Кажется, с кодом все в порядке, возможно, маршруты кэшированы. Сначала попробуйте очистить их и посмотрите, устранена ли проблема или нет с помощью следующих команд:
php artisan route:clear
Комментарии:
1. добро пожаловать! это должно быть комментарием!
2. Согласен, Дэниел, я новый пользователь, поэтому сейчас не могу делать никаких комментариев.