我在尝试通过 bluimp 的 jQueryFileUpload 上传图像时遇到问题。
在我的 route ,我有这个:Route::post('image/upload/{folder}', 'ImageController@upload');
我的文件输入位于 <form>
之外标签,因为它独立于表单:
<input id="imageupload" type="file" name="image" multiple="" data-url="{{ url('admin/image/upload/members') }}" >
我的 jQuery 函数指向 data-url 属性值:
$('#imageupload').fileupload({
dataType: 'json',
maxFileSize: 5000000,
acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
done: function (e, data) {
Members.handle_image(data);
}
});
奇怪的是,当我从 example.app/admin/members/create
调用这个方法时它有效,但是当我尝试从 example.app/admin/members/1/edit
访问它时我收到 405,Method not allowed
。
在这两种情况下,方法都是 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'
]);
我确信有一些我看不到的愚蠢的东西。
PS。我有一个项目资源,我还使用相同的路线和功能上传图像。它适用于两种情况(创建和编辑)。有人遇到过这个问题吗?
谢谢!
最佳答案
好吧,我设法解决了这个问题,但我真的不明白为什么它不起作用。
在我的 route ,我有这个,ajax url 指向 POST:
Route::post('image/upload/{folder}', 'ImageController@upload');
这不起作用。 我将其更改为:
Route::any('image/upload/{folder}', 'ImageController@upload');
现在它可以工作了。
这很奇怪,因为在我的请求 header 中我有 POST 方法,但对于 post(在路由中)我不起作用。
关于php - Laravel AJAX 请求,方法不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32902677/