Laravel 4 Ajax调用无法正常重定向到动作

时间:2014-04-19 13:05:36

标签: php jquery ajax laravel-4

我正在尝试通过我的Laravel 4应用程序中的Ajax提交表单。

问题:我刚被重定向到路线。所以没有发送Ajax调用。表单就像普通表单一样。

表格:

{{ Form::open(array('route' => 'ajax.profile.edit', 'method' => 'post', 'id' => 'edit-profile' )) }}

我视图中的JS代码:

$(document).ready(function($){
    $( '#edit-profile' ).on( 'submit', function() {
        //Form is located in a Modal, so first hide it
        $("#form-primary").niftyModal('hide');
        //Show a modal with a "loading" note
        $('#processing-modal').modal('show');

        $.post(
            $( this ).prop( 'action' ),
            {
                "_token": $( this ).find( 'input[name=_token]' ).val(),
                "displayname": $( '#displayname' ).val(),
                "bio": $( '#bio' ).val(),
                "expertise": $( '#expertise' ).val(),
                "location": $( '#location' ).val(),
            },
            function( data ) {
               //now hide the "loading" note and alter the success message.
                $('#processing-modal').modal('hide');
                alert(data.msg);
            },
            'json'
        );
        return false;
    } );

} );

2 个答案:

答案 0 :(得分:1)

这应该可行,我以完全相同的方式使用它(通过AJAX提交Laravel表单)。

$('#edit-profile').submit(function (event) {
        var form = $(this);
        $.ajax({
            type: form.attr('method'),
            url: form.attr('action'),
            data: form.serialize()
        }).done(function (data) {

            // on success

        }).fail(function (data) {

            // on error

        });
        event.preventDefault();
});

答案 1 :(得分:0)

您需要添加event.preventDefault();以阻止以传统方式提交表单。 event传递了提交的回调函数。

$(document).ready(function($){
    $( '#edit-profile' ).on( 'submit', function(event) {

        event.preventDefault();

        /* The rest of your code */


        return false;
    } );

});