javascript - 拉拉维尔 : can't I use enctype ='multipart/form-data' to POST non file inputs?

标签 javascript php jquery ajax laravel-4

由于某种原因,如果我在 .ajax 调用中使用 POST 而不是 GET,它不会到达 Controller 。

据我了解,multipar/form-data 也可以发送非文件输入,因此这应该可行。
我尝试了多种变体,但都行不通,现在我就像一只第一次看到镜子的狗一样好奇!

这是代码

这是我的表格,我已将其精简为最基本的内容:

<form id="forward-post" enctype="multipart/form-data" action="">
    <input type="hidden" value="{{$post->id}}" name="val[postid]" />
    <button class="post-forward-button" class="btn btn-sm btn-success" id="post-submit-button"><i class="icon ion-compose"></i> Forward</button>
</form>

这是正在调用的 Javascript 函数:

$(document).on('submit', '#forward-person', function (e)
    {
        e.preventDefault(); // To prevent page refresh after ajax call
        $.ajax({
            url : baseUrl + 'post/forward',
            type : 'POST',
            data : new FormData(this),
            contentType : false,
            cache : false,
            processData : false,
            success : function(data) {
                console.log('Success function of the ajax call');
            }
        });
    });

Controller

公共(public)函数forward() { Log::info('前进()内部'); if (\Input::has('val')) { Log::info('Val 找到'); } 返回0; }

路线和一切都适用于 GET,但为了完整起见,我再次将其发布在这里:

Route::get('forward', [
        'uses' => 'App\Controllers\PostController@forward'
        ]);

我还注意到,当我执行 GET 时, Controller 在输入中找不到“val”。
任何线索,我做错了什么?

最佳答案

由于它正在发出ajax post请求,因此您的路线必须是

Route::post('forward', [
   'uses' => 'App\Controllers\PostController@forward'
]);

关于javascript - 拉拉维尔 : can't I use enctype ='multipart/form-data' to POST non file inputs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614223/

相关文章:

javascript - 如何使这个轮播连续?

php - 如何在 jQuery 的页面之间保留从 PHP 登录检索到的数据

javascript - 将元素连续滚动到父元素的底部并返回到父元素的顶部

javascript - 单击按钮后播放HTML音频

javascript - 将数组转换为对象+设置属性名称

javascript - 如何刷新 HTML 包上的 Canvas?

javascript - 如何自定义CKEditor图片上传对话框的设计?

PHP Mysqli - INSERT 在实际查询中导致尾随逗号

php - Laravel 5.4 如何通过表单请求为用户分配角色?

javascript - 不知道使用哪个JQuery插件