Публикация файла с помощью ajax «ошибка 405 Метод не разрешен» в Ларавеле

маршрут

Route::get('/mediafile', 'MediaController@index');

MediaController

public function store(Request $request)
{
$image = $request->file('UserFile');
if($request->hasFile('UserFile')) {
$filename = $image->getClientOriginalName();
Image::make($image)->resize(300, 300)->save(public_path('media/' . $filename));
$media = new Media();
$media->Description = $request->Description ? $request->Description : '';
$media->MediaPath = $filename;
$media->MediaName = $filename;
$media->save();
}

return response()->json($media);
}

Посмотреть

<div class="form-group image">
<div class="col-xs-12 col-sm-12 col-md-12">
<label>Gambar</label><input type="file" name="UserFile" id="userfile" style="display: inline">
<label style="margin-left: 25px">atau</label>
<a href="http://192.168.1.12/melody4/media/select.html" class="pilihmedia btn btn-default">Pilih dari media</a>
<input type="hidden" id="MediaID" name="CategoryMediaID" value="" />
<br /><br />
<span class="uploadstatus"></span>
<div class="success infomedia infomedia alert alert-success" style="display: none">
</div>
</div>

Ajax

$('#userfile').change(function(){
$(this).attr('disable',true);
$('.uploadstatus').html('Sedang mengupload file <img src="{{ asset('vendor/img/loading.gif') }}" alt="ajaxloading" />');
$(this).parent().ajaxSubmit({
url: "<?php echo url('/mediafile') ?>",
dataType: 'json',
type: "POST",
success : function(data){
$(this).attr('disable',false);
$('.uploadstatus').empty();
},
error : function(data){

}
});

});

Я получил сообщение об ошибке «Метод 405 не разрешен» при использовании AJAX, когда я разместил изображение, я исследовал и проследил за всеми ответами в Переполнении стека, но все еще не могу разрешить его.

Пожалуйста, помогите мне решить это.

-1

Решение

Может быть проблема в токене csrf
Добавьте эту строку в HTML

<meta name="_token" content="{{ csrf_token() }}"/>

и в аяксе

$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});

и нужно выложить изображение в вызове ajax

1

Другие решения

+ Изменить Route::get в Route::post обрабатывать запросы POST.

Если вам нужно поддерживать как GET, так и POST: используйте либо Route::match или же Route::any,

Узнайте больше о маршрутизаторе Laravel здесь: https://laravel.com/docs/5.5/routing

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector