2

I've been struggling a bit with the jQuery Form plugin. I want to create a file upload form that posts the data (JSON, from the chosen file) into a REST service exposed by a servlet. The URL for the POST is calculated from what the user chooses in a SELECT dropdown. When the upload is complete, I want to notify the user immediately, AJAX-style.

The problem is that the POST header has a Content-Length of 0 and contains no data. I would appreciate any help!

<html>
<head>
<script type="text/javascript" src="js/jquery-1.4.2.min.js">/* ppp */</script>
<script type="text/javascript" src="js/jquery.form.js">/* ppp */</script>

<script type="text/javascript">

function cb_beforesubmit (arr, $form, options) {
    // This should override the form's action attribute
    options.url = "/rest/services/" + $('#selectedaction')[0].value;
    return true;
}

function cb_success (rt, st, xhr, wf) {
    $('#response').html(rt + '<br>' + st + '<br>' + xhr);
}

$(document).ready(function () {
    var options = {
        beforeSubmit: cb_beforesubmit,
        success: cb_success,
        dataType: 'json',
        contentType: 'application/json',
        method: 'POST',
    };
    $('#myform').ajaxForm(options);

    $.getJSON('/rest/services',  function (data, ts) {
        for (var property in data) {
            if (typeof property == 'string') {
                $('#selectedaction').append('<option>' + property + '</option>');
            }
        }
    });

});

</script>

</head>
<body>
<form id="myform" action="/rest/services/foo1" method="POST" enctype="multipart/form-data">
<!-- The form does not seem to submit at all if I don't set action to a default value? !-->
<select id="selectedaction">
</select>
<input type="file" value="Choose"/>
<input type="submit" value="Submit" />
</form>

<div id="response">
</div>

</body>
</html>

1 Answer 1

2

Your file input needs a "name".

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.