Laravel 5.1 MethodNotAllowedHttpException 错误
Posted
技术标签:
【中文标题】Laravel 5.1 MethodNotAllowedHttpException 错误【英文标题】:Laravel 5.1 MethodNotAllowedHttpException Error 【发布时间】: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' 【参考方案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中
<input type="hidden" id="baseURL" value=" url('') " >
【讨论】:
以上是关于Laravel 5.1 MethodNotAllowedHttpException 错误的主要内容,如果未能解决你的问题,请参考以下文章