php - Laravel AJAX 请求,方法不允许

标签 php jquery laravel laravel-5

我在尝试通过 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/

相关文章:

php - Symfony2 - 如何从我的网址中删除 'web/app_dev.php/'?

javascript - 除了显示 jQuery Ajax DataTable 的数量之外,如何将分页下拉列表移动到底部

php - 如何从 laravel 中的数组值创建动态链接?

php - 使用 PHP 读取 "chunks"中的文件

php - 缓存(自动版本)通过组合多个 css 文件创建的 php 文件的有效方法是什么?

php - PDO - 更新数据库 - 类似模式 - 一个工作另一个不工作

javascript - jQuery 如何隐藏表中包含 td 的所有跨度

javascript - Ajax - 将按钮值发送到 php

php - Laravel 基本身份验证 - 获取用户详细信息

php - ReflectionException - 类 DatabaseSeeder 不存在,Laravel Seeder