【问题标题】:Laravel 5.1 MethodNotAllowedHttpException ErrorLaravel 5.1 MethodNotAllowedHttpException 错误
【发布时间】:2017-09-23 06:41:18
【问题描述】:

我正在使用资源控制器,当我通过 ajax 提交表单时,它显示方法不允许异常。

查看

 {!! Form::open(array('route' => 'product.store','class' => 'form-horizontal','id' => 'productform','name' => 'productform','files' => true)) !!}
       {!! csrf_field() !!}
       <div class="form-group" style="padding-top: 20px">
            <label for="productName" class="col-sm-3 control-label">Product name</label>
            <div class="col-sm-9">
                 {!! Form::text('productName',null, array('id'=> 'productName','class'=>'form-control','placeholder'=>'Product name'))!!}
            </div>
       </div>                                                            
       <div class="form-group">
            <div class="col-sm-9 col-sm-offset-3">
                 {!! Form::submit('Save', array('class' => 'btn btn-primary btn-block')) !!}
            </div>
                </div>
 {!! Form::close() !!}

AJAX

$("#productform").submit(function () {
    var token = $('[name=_token]').val();
    $.ajax({
        type: 'POST',
        url: 'product/store',
        data: {
            id: '4',
            _token: token,
         },
        success: function (data) {
            alert('success');
            return false;
        }
    })
    return false;
});

routes.php

Route::resource('product', 'ProductController');

这里有什么问题...非常感谢任何帮助。

【问题讨论】:

  • 此错误意味着缺少路线,根据您提供的 routes.php - 确实缺少路线。您的 AJAX 正在点击“产品/商店”,而您的路线只是“产品”。在 AJAX 中修改路由或 url
  • 获取 baseurl 并像这样添加 baseUrl + 'product/store'

标签: php ajax laravel laravel-5.1


【解决方案1】:

在 AJAX 中

尝试将AJAX中的url设置为路由

$("#productform").submit(function () {
    var token = $('[name=_token]').val();
    $.ajax({
        type: 'POST',
        url: '{{ route("product.store") }}',
        data: {
            id: '4',
            _token: token,
        },
        success: function (data) {
            alert('success');
            return false;
        }
    });
    return false;
});

【讨论】:

    【解决方案2】:

    当您尝试在 laravel 中存储数据时,您的 URL 必须是。

    url: 'product',
    

    尝试继续你的 CMD 并输入:

    php artisan route:list 
    

    并检查 product.store Name 的 URI,然后这将是您的 AJAX 中的 url。

    【讨论】:

      【解决方案3】:

      在jquery中

      var BASEURL = $("#baseURL").val()
      

      在html中

      &lt;input type="hidden" id="baseURL" value="{{ url('') }}" &gt;

      【讨论】:

        猜你喜欢
        • 2015-10-28
        • 1970-01-01
        • 2018-03-30
        • 2018-08-07
        • 1970-01-01
        • 2019-03-25
        • 2017-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多