laravel:我不能使用enctype ='multipart / form-data'来POST非文件输入吗?

时间:2015-07-24 15:20:12

标签: javascript php jquery ajax laravel-4

出于某种原因,如果我在.ajax调用中使用POST而不是GET,则无法访问控制器。

从我读到的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');
            }
        });
    });

控制器

公共职能转发() {     Log :: info('Inside forward()');     if(\ Input :: has('val'))     {         Log :: info('Val found');     }     返回0; }

路线,一切都适用于GET,但为了完成起见,我将再次在此处发布:

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

我还注意到,当我进行GET时,控制器在输入中找不到'val' 任何线索,我做错了什么?

1 个答案:

答案 0 :(得分:2)

因为它正在发出ajax post请求,所以你的路由必须是

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