Php Laravel AJAX请求,不允许使用方法
我在尝试通过bluimp的jQueryFileUpload上传图像时遇到问题 在我的路由中,我有这样一个:Php Laravel AJAX请求,不允许使用方法,php,jquery,laravel,laravel-5,Php,Jquery,Laravel,Laravel 5,我在尝试通过bluimp的jQueryFileUpload上传图像时遇到问题 在我的路由中,我有这样一个:Route::post('image/upload/{folder}','ImageController@upload'); 我的文件输入位于标记之外,因为它独立于表单: <input id="imageupload" type="file" name="image" multiple="" data-url="{{ url('admin/image/upload/members')
Route::post('image/upload/{folder}','ImageController@upload');代码>
我的文件输入位于
标记之外,因为它独立于表单:
<input id="imageupload" type="file" name="image" multiple="" data-url="{{ url('admin/image/upload/members') }}" >
奇怪的是,当我从example.app/admin/members/create
调用这个方法时,它可以工作,但当我试图从example.app/admin/members/1/edit
访问它时,我得到了一个405,方法不允许
在这两种情况下,方法都是POST
创建和编辑URI的我的路由:
Route::get('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::get('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
我敢肯定,这是一件我看不见的蠢事
另外,我有一个项目资源,我也上传图片,使用相同的路线和功能。它适用于两种情况(创建和编辑)
有人有这个问题吗
谢谢大家! HTTP 405表示不支持请求方法
两条路由都侦听get请求
Route::get('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::get('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
你确定你不想一个或两个都被贴上吗
Route::post('members/create', [
'uses' => 'MembersController@create', 'as' => 'admin/members/create'
]);
Route::post('members/{member}/edit', [
'uses' => 'MembersController@edit', 'as' => 'admin/members/edit'
]);
好的,我设法解决了这个问题,但我真的不明白为什么它不起作用
在我的路线中,我有以下内容,其中ajax url指向POST:
Route::post('image/upload/{folder}', 'ImageController@upload');
这不起作用。
我把它改成:
Route::any('image/upload/{folder}', 'ImageController@upload');
现在它开始工作了
这很奇怪,因为在我的请求头上我有POST方法,但在POST(路由中)中我没有工作。该uri的路由是什么?您的表单声明是什么样子的?你确定你使用的是POST,而不是PLACE或PUT吗?@Jeemusu嗨!我更新了我的问题可能不太可能,但值得检查,您的routes.php
文件中是否有冲突的路由?我检查了我的路由文件。没有冲突的路线,谢谢。@MusicVisious您没有邮政路线。没有。创建和编辑URI用于获取表单(和表单数据)。存储和更新方法是POST。页面上是否有表单元素?可能是fileupload脚本使用了forms方法属性?您是否使用POST作为更新表单,而不是PLACE或Plat?我在页面上有一个表单元素,是的。但是输入在表单标签之外,显然没有使用POST,这很奇怪。尝试使用Route::place或Route::put并缩小范围以查看它使用的方法,然后您可以尝试并确定它来自何处;伙计,我真的不明白。但它不应该是任何的。
Route::any('image/upload/{folder}', 'ImageController@upload');