What is the shortest way to create post form and submit it using jQuery?

jquery

Solution

Source: https://stackoverflow.com/a/133997/803925

Modified to use jQuery:

function post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.

    var $form = $("<form>")
        .attr("method", method)
        .attr("action", path);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var $hiddenField = $("<input type='hidden' >")
                .attr("name", key)
                .val( params[key] );

            $form.append( $hiddenField );
         }
    }

    $('body').append( $form );
    $form.submit();
}

Problem

I have a button with attributes `data-url` and `data-parameter` and need to post that to controller. Thing is, that controller will return a redirect, so `$.post` not really helpful here, I'm thinking about creating form on the fly and submitting it. I think that is quite common task, but I couldn't find any shortcut on jQuery to do this, what would be the shortest/best way to do it?

Original source

Related problems