在学习Laravel 4的过程中,如果我的问题听起来很傻,请原谅我。

我正在尝试使用$ .ajax将表单数据发布到控制器。
检查控制器后,Input :: all()完全不会填充数据。

检查表单是否已在jquery代码中序列化。
所以现在我在这里寻求帮助,看看是否有人知道如何解决此问题。

以下是到目前为止我编写的代码。

jQuery代码

<script>
$(document).ready(function(){
    var BASE = "<?php echo Request::root(); ?>/signup/add";
    $('#password').on('blur', function() {
        var info = $('.info');

        $.ajax({
            url:BASE,
            method:'post',
            contentType:'application/json; charset=utf-8',
            cache:false,
            dataType:'json',
            data: $("#membersignup").serialize(),
            success:function(data){
                console.log(data);
            },
            error:function(xhr,status,error){
                //errors here
            }
        });
    });
});
</script>


route.php

Route::post('signup/add', array('uses'=>'MemberController@store'));


MemberController.php

public function store()
{
    return Response::json(Input::all());
}

最佳答案

而不是使用以下方法创建url

var BASE = "<?php echo Request::root(); ?>/signup/add";


使用这样的命名路由:

Route::post('signup/add', array('uses' => 'MemberController@store', 'as' => 'signup.add'));


因此,使用以下方法为您生成url请求的ajax会更容易:

var BASE = "<?php echo route('signup.add'); ?>


如果您仍在生成正确的url,这可能无法解决您的问题,但是可以肯定地生成正确的url。我怀疑您是否没有将请求发送到正确的url,但不确定。

07-24 09:50
查看更多