我的動物輪廓(ID卡)的列表。當我以管理員身份登錄後點擊其中一個人時,我訪問了一個頁面,其中包含更多詳細信息和多張圖片。在那裏,我可以編輯動物配置文件(POST方法),並且我還希望能夠通過單擊它來刪除圖片。我試圖使用Ajax來做到這一點,但我無法完成該過程。到目前爲止我的代碼:阿賈克斯Laravel 5.3:GET方法不被允許(405錯誤)
Route::get('/edition-adoption/{animal}', '[email protected]')
->where('animal', '[0-9]+');
Route::post('/edition-adoption/{animal}', '[email protected]');
Route::get('/edition-adoption/{folder}/{file}/delete', ['uses' => '[email protected]', 'as' => 'delete']);
查看:
<form role="form" method="POST" enctype="multipart/form-data" action="{{ url('/edition-adoption/{animal}') }} ">
{{ csrf_field() }}
/*several fields to update*/
<div class="col-xs-11">
<?php
edit_profile($animal->id);
?>
<script src={{asset("/js/imageSrc.js")}}></script>
</div>
/*other fields & submit button*/ </form>
控制器:
public function editAdoption (Animal $animal) {
return view('administration/edition-adoption',['animal' => $animal]);
}
public function deletePicture($file, $folder) {
$path = public_path('js/slider_images/Adoption/Profile/'.$folder.'/'.$file);
unlink($path);
}
public function updateAdoption (Request $request) {
/*several update requests*/
}
助手:
function edit_profile($current_id) {
$paths = File::Files('js/slider_images/Adoption/Profile/'.$current_id);
if (count($paths)==0) {
echo
"<p>Aucune image</p>";
}
else {
foreach($paths as $path)
{
$filesinfo[] = pathinfo($path);
}
foreach ($filesinfo as $file) {
$current_basename = $file['basename'];
echo
"<img onclick='getImgSrc(this)' width='200px' src='".asset("/js/slider_images/Adoption/Profile/".$current_id."/".$current_basename)."'/>  ";
}
}
}
imageSrc.js(阿賈克斯):
function getImgSrc(param){
var imgSrc = $(param).attr("src");
var myarr = imgSrc.split("/");
var arrlen = myarr.length;
var id = myarr[arrlen-2];
var myvar = myarr[arrlen-1];
var result = confirm("Voulez-vous vraiment supprimer cette image ? Cette action est irréversible.");
if (result) {
$.ajax({
url: 'delete',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {'folder': id, 'file' : myvar},
success: function (response) {
alert('Image supprimée !');
},
error: function() {
alert('Erreur. Veuillez réessayer.');
}
});
}
}
確認警報工作正常,但是當我點擊確定,但以下情況例外出現:
GET http://localhost/sites/(...)/public/edition-adoption/delete?folder=foldername&file=filename.jpg 405(不允許的方法)
任何想法(S)關於如何解決這個問題?
嘗試通過完整的相對URL在你的Ajax。你的路由是'/ edition-adoption/{folder}/{file}/delete',但是它正在訪問'/ edition-adoption/delete?' – aynber
@aynber謝謝你的回答。我嘗試使用'url:id +'/'+ myvar +'/ delete','但結果是一樣的... – Mefimefi
檢查你的'工匠路線:list | grep版本採用| grep delete'說。 –