Laravel-RouteCollection.php第251行中的MethodNotAllowedHttpException

时间:2019-01-19 11:35:14

标签: php laravel

我的问题是关于使用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

我不知道。我该如何解决?

3 个答案:

答案 0 :(得分:0)

您可以尝试将该路由放入web.php吗?然后从那里调用它,而不必在链接中包含/ api /

答案 1 :(得分:0)

对于任何想知道的人:问题是他在某个时候在代码中使用了GET,但是他现在已经将其修复,并且可以正常工作。请参阅对他的问题的评论以获取更多信息。在看到问题并提出答案后,一些一般性注释:

  1. 有关Laravel路线的一般信息可以从以下文档中获取:https://laravel.com/docs/5.7/routing(确保您使用与laravel版本相匹配的版本)
  2. 在api.php中定义的API路由始终自动在api /前面添加前缀,因此无需在路由文件中专门输入
  3. {@ {1}}可以访问Route::get("api/test", function(){});
  4. 但是,尝试通过使用/api/test来访问它会导致产生MethodNotAllowedException,因为Laravel假定/之后是get参数。所以要小心:)

答案 2 :(得分:0)

这是关于旧jQuery版本的,我更改了jQuery版本并解决了问题。感谢您的帮助。