我的问题是关于使用Ajax上传照片。
这是我的刀刃:
<section class="panel">
<header class="panel-heading">
Medya Ekle
</header>
<div class="panel-body">
<form class="form-horizontal tasi-form" id="upload_form" method="post" enctype="multipart/form-data">
{{csrf_field()}}
<div class="form-group">
<label class="col-sm-2 control-label">Medya Başlığı *</label>
<div class="col-sm-10">
<input type="text" class="form-control mediaTitleTxt" name="mediaTitleTxt" autocomplete="off" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Medya *</label>
<div class="col-sm-10">
<input type="file" class="form-control mediaInput" name="mediaInput" autocomplete="off" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-12">
<button class="btn btn-success pull-right addMediaBtn">Ekle</button>
</div>
</div>
</form>
</div>
</section>
<section class="panel tasks-widget">
<header class="panel-heading">
Medyalar
</header>
<div class="panel-body">
</div>
</section>
<!--main content end-->
这是我的JS代码:
let form = $("#upload_form");
form.on("submit", function (e) {
e.preventDefault();
$.ajax({
url:"/api/media/create",
method:"POST",
data:new FormData(this),
dataType:'JSON',
contentType: false,
cache: false,
processData: false,
success:function(data)
{
console.log(data);
}
});
});
这是我的路线/api.php:
Route::post("media/create", "api@createMedia");
这是我的控制者:
public function createMedia(Request $request){
//TODO Upload image
return [$request];
}
单击提交按钮时出现此错误:
RouteCollection.php第251行中的MethodNotAllowedHttpException
我不知道。我该如何解决?
答案 0 :(得分:0)
您可以尝试将该路由放入web.php吗?然后从那里调用它,而不必在链接中包含/ api /
答案 1 :(得分:0)
对于任何想知道的人:问题是他在某个时候在代码中使用了GET,但是他现在已经将其修复,并且可以正常工作。请参阅对他的问题的评论以获取更多信息。在看到问题并提出答案后,一些一般性注释:
Route::get("api/test", function(){});
。/api/test
来访问它会导致产生MethodNotAllowedException,因为Laravel假定/之后是get参数。所以要小心:)答案 2 :(得分:0)
这是关于旧jQuery版本的,我更改了jQuery版本并解决了问题。感谢您的帮助。