Laravel 5.1 MethodNotAllowedHttpException错误

时间:2017-04-26 03:18:20

标签: php ajax laravel laravel-5.1

我正在使用资源控制器,当我通过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');

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

3 个答案:

答案 0 :(得分:0)

在jquery中

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

in html

&#13;
&#13;
<input type="hidden" id="baseURL" value="{{ url('') }}" >
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

url: 'product',

尝试继续使用您的CMD并输入:

php artisan route:list 

并检查product.store Name的URI,然后在你的AJAX中找到你的URL。

答案 2 :(得分:0)

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;
});